IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PureBasic Discussion :

PureBasic 5.20 bêta 1 est disponible sur votre compte


Sujet :

PureBasic

  1. #1
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 bêta 1 est disponible sur votre compte
    La version 5.20 beta 1 est disponible sur votre compte. C'est tout chaud, ça vient de sortir !

    Liste des nouveautés

    Added: Module support for the compiler
    Added: Runtime library
    Added: Dialog library
    Added: GTK3 subsystem for Linux
    Added: DirectX11 subsystem for Windows
    Added: JoystickName(), JoystickZ()
    Added: Optional #PB_Relative flag to JoystickX/Y/Z() to have more precise values
    Added: Optional pad number to JoystickX/Y/Z() to handle more complex gamepads (full support of XBox 360 one for example)
    Added: ZoomSprite() now accepts #PB_Default as Width/Height to reset to initial sprite size
    Added: 'Color' and 'Alpha' parameter to DisplayTransparentSprite()
    Added: ClipSprite() now support #PB_Default for individual parameter
    Added: #PB_Sprite_PixelCollision flag to CreateSprite(), LoadSprite() to enable pixel collision
    Added: Zoom support to SpritePixelCollision() and SpriteCollision()
    Added: OpenGL support for SpriteBlending() (warning, it just wraps OpenGL mode, so it can behave different than DirectX)
    Added: 32-bit support for SpriteOutput() for DX and OpenGL
    Added: #PB_EventType_Focus and #PB_EventType_LostFocus support to EditorGadget()
    Added: #PB_EventType_RightClick support to ListViewGadget()
    Added: #PB_EventType_Change support to PanelGadget() and DateGadget()
    Added: #Prototype support to Defined()
    Added: All Init() functions can be called more than once without issue (like InitSound(), InitNetwork() etc.)
    Added: #PB_FileSystem_Force support to DeleteFile()
    Added: #PB_FileSystem_NoExtension support to GetFilePart()
    Added: Back color parameter to CreateImage()
    Added: Gosub are now allowed again inside Procedure
    Added: #PB_Entity_NbSubEntities to GetEntityAttribute()
    Added: MeshIndexCount(), SetRenderQueue(), FetchEntityMaterial(), GetMeshData(), SetMeshData()
    Added: CPUName(), Un/BindEvent(), Un/BindGadgetEvent(), Un/BindMenuEvent()
    Added: Previous location is displayed when declaring a structure, interface, prototype or procedure twice.
    Added: 2 license files to easy add the needed information when shipping PB programs (see reference documentation)
    Added: Bool() is now evaluated at compile time if the whole expression is constant
    Added: Debugger check for SortStructuredList() and SortList() to ensure the specified list is of correct type
    Added: Linux executables created on new distribution should still work on old linux.

    Optimized: Pixel sprite collision routines are now much faster with DirectX
    Optimized: More peephole optimizations on x64 assembler output
    Optimized: Faster compilation for big programs
    Optimized: Linux build server have been upgraded, now using a better GCC which produce better code.

    Changed: renamed ZoomSprite3D() to ZoomSprite()
    Changed: renamed TransformSprite3D() to TransformSprite()
    Changed: renamed RotateSprite3D() to RotateSprite()
    Changed: renamed Sprite3DQuality() to SpriteQuality()
    Changed: renamed Sprite3DBlending() to SpriteBlending()
    Changed: Packer plugin constant renamed to #PB_PackerPlugin_XXX

    Updated: WebGadget() on Windows doesn't needs ATL.dll anymore
    Updated: zlib to 1.2.7
    Updated: pqlib (PostgreSQL) to 9.2.4
    Updated: SCNotification scintilla structure

    Removed: Mozilla ActiveX support for WebGadget() on Windows as the last ActiveX version is way too old (2005)
    Removed: Sprite3D library (merged with regular sprite library)
    Removed: Palette library (outdated)
    Removed: DisplayTranslucentSprite() -> replaced with 'Alpha' parameter for DisplayTransparentSprite()
    Removed: DisplaySolidSprite() -> replaced with 'Color' parameter for DisplayTransparentSprite()
    Removed: DisplayRGBFilter() -> can be replaced with a zoomed sprite with color
    Removed: DisplayShadowSprite() -> can be replaced with DisplayTransparentSprite() with color
    Removed: StartSpecialFX(), StopSpecialFX(), DisplayAlphaSprite(), ChangeAlphaIntensity(), UseBuffer()
    Removed: Carbon subsystem on OS X, it was too old be used with new libs
    Et quelques exemples pour montrer comment fonctionnent les nouveautés :

    MODULE
    Les modules permettent de protéger du code pour le réutiliser plus facilement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    ;
    ; Quick module test
    ;
     
    ; All item declared in the module definition will be public
    ; Works for everything like array, list, structure, macro etc.
    ;
    DeclareModule Vehicule
     
      #VehiculeConstant  = 10
      #VehiculeConstant2 = 20
     
      Declare NewAuto(Flags)
      Declare NewBoat()
     
    EndDeclareModule
     
     
    ; This procedure will be redefined in the module without issue
    ;
    Procedure Init()
      Debug "Main Init"
    EndProcedure
     
     
    ; The module implementation
    ; Only residents definition will be available here
    ;
    Module Vehicule
     
      #PrivateConstant  = 30
     
      Procedure Init()
        Debug "Vehicule Init"
      EndProcedure
     
     
      Procedure NewAuto(Flags)
        Init()
        Debug "NewAuto"
      EndProcedure
     
      Procedure NewBoat()
        Init()
        Debug "NewBoat"
      EndProcedure
     
    EndModule
     
    Init()
     
    Vehicule::NewAuto(Vehicule::#VehiculeConstant)
    Vehicule::NewBoat()
     
    ; Or with module import
    ;
    UseModule Vehicule
     
    NewAuto(#VehiculeConstant)
    NewBoat()
     
    HideModule Vehicule
    RUNTIME

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Runtime Procedure RuntimeProcedure()
      Debug "RuntimeProcedure"
    EndProcedure
     
    RuntimeProcedure()
     
    Debug GetRuntimeInteger("RuntimeProcedure()")
    Debug @RuntimeProcedure()
     
    Runtime Enumeration
      #Runtime1
      #Runtime2
      #Runtime3
    EndEnumeration
     
    Debug GetRuntimeInteger("#Runtime2")
    Debug GetRuntimeInteger("#Runtime3")
     
    Procedure TestProce()
    EndProcedure
     
    Runtime TestProce()
     
    #AnotherConstant = 54
    jiji.l = 10
    *Pointer = 52
    Runtime TestProce(), #AnotherConstant, jiji, *Pointer
     
    Debug GetRuntimeInteger("jiji")
    jiji.l = 20
    Debug GetRuntimeInteger("jiji")
    Debug GetRuntimeInteger("*Pointer")
     
    Debug IsRuntime("jiji")
    Debug IsRuntime("jiji2")
     
    ;Point.Point
    ;Runtime Point
     
     
    DeclareModule Common
     
      Enumeration Test
        #fred = 15
     
      EndEnumeration
     
     
     
    EndDeclareModule
     
    Module Common
     
      Runtime Procedure RuntimeModuleProcedure()
        Debug "RuntimeModuleProcedure"
        Debug @RuntimeModuleProcedure()
      EndProcedure
     
     RuntimeModuleProcedure()
     
    EndModule
     
     
    Debug GetRuntimeInteger("Common::RuntimeModuleProcedure()")
     
    Enumeration Common::Test
      #fred2
    EndEnumeration
     
    Debug Common::#fred
    Debug Common::#fred2
     
    Runtime Common::#fred
    Debug GetRuntimeInteger("Common::#fred")
    DIALOG

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?xml version="1.0"?>
    <!-- Window -->
    <window id="0" name="hello" text="Window" label="TestDialog" width="320" height="10" flags="#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget">
       <splitter width="300" height="500">
         <hbox>
          <checkbox name="checkbox1" text="Run only one Instance" disabled="yes" Flags=""/>
          <progressbar text="Vrey vreyv rye"/>
          <trackbar text="Ole" invisible="no" Flags="#PB_TrackBar_Ticks|#PB_TrackBar_Ticks|#PB_TrackBar_Ticks" width="150"/>
          <option text="option 1" name="option1" onevent="CheckBoxEvent()"/>
          <option text="option 2"/>
         </hbox>
         <vbox>
          <listview text="option 3" height="50"/>
          <button text="Ole 2"/>
          <listicon text="option 4" height="50"/>
          <string text="string content"/>
          <editor text="editorgadget" height="50"/>
          <text text="Text gadget"/>
         </vbox>     
       </splitter>
    </window>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Runtime Procedure CheckBoxEvent()
      Debug "Option 1"
    EndProcedure
     
    Procedure Main()
     
      LoadXML(0, "ui.xml")
     
      CreateDialog(0)
     
      OpenXMLDialog(0, 0, "hello")
     
      HideWindow(0, 0)
     
      While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
     
    EndProcedure
     
    Main()
    Comme d'habitude, la doc sera mise à jour soit avec l'une des prochaines versions bêtas ou pour la version finale.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  2. #2
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut
    Petite explication sur la bibliothèque Runtime, je ne traduis pas votre anglais est meilleur que le mien.

    'Runtime' add information in the executable to access these token at runtime. For example, you can add a procedure as runtime, and then get its address by using a string. It's useful for module or libraries so you can query the executable about some of its component (it's a bit like RTTI in C++). The new Dialog lib use it to get the procedure for event, directly from the XML. It wouldn't be possible without that. So you can see it like a standard way to access internal data. You can also imagine a small scripting frontend which could change the value of your variables on the run.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  3. #3
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut
    Un autre exemple de dialog

    Citation Envoyé par Fred
    Il y aussi un container gridbox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?xml version="1.0"?>
     
    <!-- Window -->
    <window id="0" name="GridBoxWindow" text="Window" label="TestDialog" width="220" height="250" flags="#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget">
      <gridbox spacing="3" columns="2" expand="yes">
          <checkbox text="Run only one Instance" disabled="yes" Flags=""/>
          <progressbar text="Vrey vreyv rye dsqj jsqhdk hqskjdh kjqshd kjqhsdjk hqjkdh kjqhdk qhkj"/>
          <trackbar text="Ole" invisible="yes" Flags="   #PB_TrackBar_Ticks | #PB_TrackBar_Ticks|#PB_TrackBar_Ticks"/>
          <option text="option 1" />
          <option text="option 2" />
          <listview text="option 3" height="50" />
          <button text="Ole 2" />
          <listicon text="option 4" height="50" />
          <string text="string content" />
          <editor text="editorgadget" height="50" />
          <text text="Text gadget" />
      </gridbox>
    </window>
    On peut tout combiner, mettre une gridbox dans une gridbox qui est elle-même dans un vbox. Ensuite tout est calculé automatiquement en fonction des contraintes spécifiées, ce qui est très pratique quand on fait du multi OS car souvent les fonts ne sont pas les mêmes et la taille des contrôles non plus.
    Vous pouvez même laisser ces fichiers XML en externe de votre appli, comme ça vos utilisateurs peuvent modifier l'interface comme bon leur semble
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  4. #4
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 bêta 2
    La bêta 2 est disponible sur votre compte. Cette version comporte la correction des bogues, la mise à jour de la bibliothèque zlib (1.2.8) et suppression de Gosub dans une procédure car il ne fonctionne pas encore correctement.


    update: beta 2 is available and with the usual bug fixes. As well, zlib have been updated to 1.2.8 and Gosub in procedure have been removed as it can't work for now. Happy testing !
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  5. #5
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 bêta 3 est disponible sur votre compte
    La bêta 3 est disponible sur votre compte.HideModule est renommé en UnuseModule.

    update: beta 3 is out with the usual bug fixes. 'HideModule' has been renamed to 'UnuseModule' for better consistency. Happy testing !
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  6. #6
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut
    Freak détaille un peu plus l'usage des modules :

    Les modules permettent le découpage du code en plusieurs parties isolées les unes des autres. Il n'y a pas de risque de conflits avec des noms de variables ou des noms de procédures contradictoires avec d'autres parties de code. Seul le code d'un module défini dans le bloc "DeclareModule" est accessible de l'extérieur. Cela permet de décomposer un projet en éléments plus petits / plus simples pouvant être codés séparément, sans qu'ils interfèrent les uns avec les autres.

    Exemple:

    Admettons que le programme comporte deux grands domaines: faire des trucs A et des trucs B. Le programme pourrait être structuré ainsi:

    ThingA.pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    DeclareModule ThingA
     
      ; This is the only procedure callable from the outside
      Declare DoThingA(foo, bar)
     
    EndDeclareModule
     
     
    Module ThingA
     
      ; Here we can use simple names without fear of a name collision with another
      ; module. Without Modules, these would have to be called "ThingA_x" to separate
      ; them similar names in the ThingB code.
      Global x = 1, y = 2
     
      ; This procedure is only visible in here, so again, we can use any name we want
      ; without a collision with other code
      Procedure Calculate()
        ProcedureReturn 42
      EndProcedure
     
      ; this can be called from the outside
      Procedure DoThingA(foo, bar)   
        x = Calculate() + y
        Debug x
      EndProcedure
     
     
    EndModule

    ThingB.pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    DeclareModule ThingB
     
      ; visible from the outside
      Declare DoThingB()
     
    EndDeclareModule
     
    Module ThingB
     
      ; here, the same names are used as in the ThingA module, but no problem.
      ; The global variable here is not the same as the one in ThingA.
      Global y
     
      Procedure Calculate()
        ProcedureReturn 21
      EndProcedure
     
      Procedure DoThingB()
        y = Calculate()
        Debug y
      EndProcedure 
     
    EndModule

    Main.pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    XIncludeFile "ThingA.pb"
    XIncludeFile "ThingB.pb"
     
    ; open the needed modules
    UseModule ThingA
    UseModule ThingB
     
    ; somewhere in the main code, call the modules
    ; ...
    DoThingA(1, 2)
     
    ;.. and later...
    DoThingB()
    Vous poulez accéder aux parties publiques des modules en utilisant les noms complets :
    ThingA :: DoThingA () et ThingB :: DoThingB ()

    Ou en ouvrant les modules avec UseModule comme dans l'exemple ci-dessus, à chacun de choisir son style.

    Dans le cas où du code doit être partagé entre les 2 modules, mettez le dans un module, exemple :

    Common.pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    DeclareModule Common
     
      ; some shared constants
      #SomeConstant = 1
      #OtherConstant = 25
     
      ; some shared code
      Declare ReadConfiguration()
     
    EndDeclareModule
     
    Module Common
     
      ; the shared procedure
      Procedure ReadConfiguration()
      EndProcedure
     
    EndModule
    ThingA.pb:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    DeclareModule ThingA
     
      ; This is the only procedure callable from the outside
      Declare DoThingA(foo, bar)
     
    EndDeclareModule
     
    Module ThingA
     
      UseModule Common
     
      Procedure DoThingA(foo, bar)   
     
        ReadConfiguration()
        Debug #SomeConstant   
     
      EndProcedure
     
     
    EndModule
    ThingB.pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    DeclareModule ThingB
     
      Declare DoThingB()
     
    EndDeclareModule
     
    Module ThingB
     
      UseModule Common
     
      Procedure DoThingB() 
        ReadConfiguration()
        ; ...
      EndProcedure 
     
    EndModule
    C'est l'essence même des modules: Chaque partie du code est séparée, et l'interaction se produit uniquement selon les limites définies dans le bloc DeclareModule.

    Cette séparation permet également de réutiliser plus facilement le code.
    Si je veux utiliser ThingA dans un autre programme, je peux inclure ThingA.pb avec un risque minime de conflits :
    Seul le nom du module lui-même et la procédure DoThingA() sont accessibles de l'extérieur.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  7. #7
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 bêta 4
    La bêta 4 est disponible sur votre compte.

    update: beta 4 is out. Only bug fixes this time ! I have also published a new ui.xml example which show resizing (see below).
    nouvel exemple de DIALOG avec redimensionnement automatique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?xml version="1.0"?>
     
    <!-- Window -->
    <window id="0" name="hello" text="Window" label="TestDialog" minwidth="auto" minheight="auto" flags="#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget">
      <hbox expand="item:2">
        <vbox expand="no">
          <checkbox name="checkbox1" text="Run only one instance ?" disabled="yes" Flags=""/>
          <progressbar height="25"/>
          <trackbar invisible="no" Flags="#PB_TrackBar_Ticks" height="25"/>
          <option text="option 1" name="option1"/>
          <option text="option 2"/>
          <checkbox name="checkbox1" text="Enable alpha-blending" Flags=""/>
          <option text="scale x2" name="scale"/>
          <option text="scale x3"/>
        </vbox>
        <editor name="editor" width="200" height="50">
        </editor>
      </hbox>
    </window>
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  8. #8
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 bêta 5 est disponible
    La beta 5 est disponible sur votre compte.
    Dans cette version la bibliothèque 'Module' est renommée 'Music' pour éviter la confusion avec les modules (code protégé).

    update: beta 5 is available. As always, some bug fixes and also the 'Module' lib fully renamed to 'Music'. Added #PB_Module support to Defined() for completeness.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  9. #9
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 6
    La bêta 6 est disponible, elle comporte de nombreuses corrections de bogues et quelques nouveautés.

    update: beta 6 is out. As always, many bug fixes and some new features added:


    Added: Debugger now support module syntax in the expression evaluation and item display.
    Added: #PB_EventType_FirstCustomValue for use with PostEvent()
    Added: CameraFollow(), ExamineWorldCollisions(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()
    Added: WorldCollisionContact(), WorldCollisionNormal(), WorldCollisionAppliedImpulse()
    Added: BuildMeshTangentVectors(), MeshVertexTangent()
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  10. #10
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 Redimensionnement automatique d'un gadget
    Voila une information fort utile, voici un exemple qui montre comment redimensionner automatiquement les gadgets en fonction de la taille des caractères.
    la constante #PB_Gadget_RequiredSize sera disponible dans une prochaine beta.

    Citation Envoyé par Fred
    With PB 5.20, you can use GadgetWidth(0, #PB_Gadget_RequiredSize). It does work for all gadgets, but is mainly useful for those handling text (like TextGadget(), OptionGadget() etc.). It's what we use internally for the new 'Dialog' with auto layout (if you can, you should give it a try as well, as it will solve your layout issue in no time).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #PB_Gadget_RequiredSize = 1 ; Missing in the resident in the current beta, will be in the next
     
    OpenWindow(1, #PB_Any, #PB_Any, 400, 200, "Font Resolution", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
     
    ButtonGadget(2, 110, 20, 0, 0, "TEST TEXT")
    ResizeGadget(2, #PB_Ignore, #PB_Ignore, GadgetWidth(2, #PB_Gadget_RequiredSize), GadgetHeight(2, #PB_Gadget_RequiredSize))
     
    ButtonGadget(3, 110, 50, 0, 0, "TEST TEXT")
    SetGadgetFont(3, LoadFont(0, "Arial", 30))
    ResizeGadget(3, #PB_Ignore, #PB_Ignore, GadgetWidth(3, #PB_Gadget_RequiredSize), GadgetHeight(3, #PB_Gadget_RequiredSize))
     
     
    While WaitWindowEvent() ! #PB_Event_CloseWindow : CloseWindow : Wend
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  11. #11
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 7 est disponible
    La beta 7 est disponible sur votre compte. La doc est complète à l'exception de la biblio 'Dialog' (en anglais pour l'instant). les bogues importants sont corrigés pour que vous puissiez continuer de tester. Et il y a quelques changements :

    update: beta 7 is available on your online account. The documentation is complete except for the 'Dialog' library (english only). As always, some bug fixes and a some changes:

    Added: CopyTexture()
    Renamed: Frame3DGadget() to FrameGadget()
    Renamed: Frame3DGadget3D() to FrameGadget3D()
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  12. #12
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 bêta 8
    la beta 8 est disponible sur votre compte.
    Pour un bon usage des modules, il y a quelques informations importantes à lire sur le blog de PureBasic.


    Hi folks,

    update: beta 8 is available on your online account. It includes many bug fixes and module support in autocomplete ! Please read the Fr34k's blog post as well to get a better grip about this new functionnality http://www.purebasic.fr/blog/?p=417 . News:


    Added: Module support for autocomplete
    Changed: Debug output is now an editorgadget() to have better control over printed output (copy/paste a part of a line etc.)
    Removed: RenderMovieFrame()
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  13. #13
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 9
    La beta 9 est disponible sur votre compte. La doc anglaise est complète, partiellement en français (merci à Mesa pour son travail de traduction). Et il y a des nouvelles fonctions.


    Hi folks,

    update: beta 9 is available on your online account. It includes many bug fixes and a few new functionnalities ! Also the doc is now complete (english only), so if you find something wrong, don't hesitate to tell.

    Added: Pitch(), Roll(), Yaw()
    Added: #PB_Entity_LinearSleeping, #PB_Entity_AngularSleeping, #PB_Entity_DeactivationTime, #PB_Entity_IsActive,
    Added: #PB_Entity_AngularVelocityX/Y/Z, #PB_Entity_AngularVelocity #PB_Entity_HasContactResponse for Get/SetEntityAttribute()
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  14. #14
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 10 est disponible
    La bêta 10 est disponible sur votre compte, la version finale est proche c'est le moment ou jamais de tester pour signaler le moindre problème.

    update: beta 10 is available on your online account. It includes many bug fixes. A step forward to final, so don't hesitate to test !
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  15. #15
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 11 est disponible
    La bêta 11 est disponible sur votre compte, la version finale est proche c'est le moment ou jamais de tester pour signaler le moindre problème.

    Hi folks,

    update: beta 11 is available on your online account. It includes many bug fixes and a small new feature. Another step forward to final, so don't hesitate to test !

    Added: #PB_Entity_ScaleX/Y/Z, for Get/SetEntityAttribute()
    Renamed: #PB_Shorcut_Prior to #PB_Shorcut_PageUp and #PB_Shorcut_Next to #PB_Shorcut_PageDown
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  16. #16
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 12
    Je crois que Fred est pressé de sortir la 5.20, une nouvelle beta est disponible sur votre compte, elle comporte de nouvelles corrections.

    Hi folks,

    update: beta 12 is available on your online account. It just includes some bug fixes which could prevent proper testing.

    Et Mesa a fini de traduire la doc en français un grand merci pour le boulot qu'il fait.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  17. #17
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 14 est disponible
    La bêta 14 est disponible sur votre compte.

    update: beta 14 is available on your online account. It only includes some bug fixes, don't hesitate to test it !
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  18. #18
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 15 est disponible
    La beta 15 est disponible sur votre compte.

    update: beta 15 is available on your online account. It includes some bug fixes, and a new automatic DirectX updater for the Windows installer. So if you can test this new installer on a fresh windows, and check than 3D engine samples are working out of the box it would be cool ! Also all 3D examples have checked on Linux and OS X, so if some still don't work, don't hesitate to tell.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  19. #19
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 16 est disponible sur votre compte
    Cette version apporte quelques nouveautés :
    - Ajout d'un contrôle automatique pour les mises à jour dans le menu de l'éditeur.
    - Ajout de #PB_Window_ScreenCentered et #PB_Window_WindowCentered pour HideWindow()
    - Ajout d'un nouveau paramètre 'mode' à la fonction CameraFollow()
    mode = #True - la caméra regarde la position de l'objet qu'elle suit.
    mode = #False - Il faut appeler la fonction CameraLookAt() après la fonction CameraFollow() pour indiquer le point à regarder.
    - Ajout du calcul du point d'intersection et de la normale pour la fonction RayCollide(). Utilisez PickX/Y/Z() et NormalX/Y/Z() pour récupérer ces valeurs.

    update: beta 16 is available on your online account. We changed the DX update stuff, so it shouldn't trigger .net framework anymore, feel free to test ! It also brings some new stuff:


    Added: Automatic PureBasic update check in the IDE (for other IDE which want to do it, just get the purebasic.com/versions.xml file and parse it).
    Added: #PB_Window_ScreenCentered and #PB_Window_WindowCentered support for HideWindow()
    Added: New parameter to CameraFollow() to autotrack the entity
    Added: PickX/Y/Z() and NormalX/Y/Z() support after RayCollide() to get point intersection and normal (if ray hit something).
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  20. #20
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    avril 2003
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 1 239
    Points : 8 122
    Points
    8 122
    Billets dans le blog
    8
    Par défaut PureBasic 5.20 beta 17
    La beta 17 est disponible sur votre compte.

    The beta 17 is availlable, if all is OK you should be notified by the IDE
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

Discussions similaires

  1. PureBasic 5.22 LTS est disponible sur votre compte.
    Par comtois dans le forum PureBasic
    Réponses: 0
    Dernier message: 17/03/2014, 20h52
  2. PureBasic 5.22 LTS beta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 1
    Dernier message: 10/03/2014, 18h16
  3. PureBasic 5.21 LTS beta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 2
    Dernier message: 18/11/2013, 19h40
  4. PureBasic 5.11 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 1
    Dernier message: 23/03/2013, 21h21
  5. PureBasic 5.11 beta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 2
    Dernier message: 13/03/2013, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo