Developpez.com - Rubrique PureBasic

Le Club des Développeurs et IT Pro

PureBasic 5.00 est sorti

Support Cocoa et version 64 bits OS X, nouvel éditeur de fenêtres Windows, Linux et OS X, nombreuses fonctions 3D

Le 2012-11-05 19:02:39, par comtois, Responsable Purebasic
La version 5.00 de PureBasic est sortie.

On notera le support Cocoa et la version 64 bits pour OS X. Et un nouvel éditeur de fenêtres pour Windows, Linux et OS X.

On trouve également la mise à jour des bibliothèques tierces, pas mal de bogues corrigés et bien sûr la bibliothèque 3D grandement améliorée. Voir la liste ci-dessous pour plus de détails.

Cette version a nécessité une longue période de test d'après l'équipe de Fantaisie Software, qui travaille déjà sur la suivante.

Les versions démos ne sont pas encore en ligne, mais cela ne saurait tarder. Les version démos sont en ligne ici

Pour ceux qui ont une licence, vous pouvez télécharger PureBasic 5.00 sur votre compte :

http://www.purebasic.com/french/download.php

Et pour finir un lien indispensable pour les utilisateurs de Cocoa :

Trucs et astuces pour Cocoa

Liste des nouveautés :

- Ajouté: Support de Cocoa sous OS X (maintenant le toolkit par défaut)
- Ajouté: version 64-bit de PureBasic pour OS X
- Ajouté: nouvel éditeur de fenêtres pour Windows, Linux et OS X
- Ajouté: sous-système 'Carbon' pour OS X PowerPC et x86
- Ajouté: support des tableaux multi-dimensionnels dans les structures
- Ajouté: InitScintilla() pour Linux et OS X
- Ajouté: #PB_Window_NoActivate pour OpenWindow() et HideWindow()
- Ajouté: support de #PB_EventType_RightClick pour ScintillaGadget()
- Ajouté: Section 'favoris' à l'outil 'explorateur' de l'IDE
- Ajouté: Evénement pour les outils personnels quand un nouveau source est créé (IDE)
- Ajouté: support de SetWindowCallback() sous OS X
- Ajouté: GTK sous linux est maintenant partiellement thread-safe (Linux)
- Ajouté: support de SpritePixelCollision() sous OS X et Linux

- Mis à jour: version de Scintilla (3.2.2)
- Mis à jour: version d'Expat (2.1.0)
- Mis à jour: version de libjpeg (8.0d)
- Mis à jour: version de libpng (1.5.12)
- Mis à jour: version d'OGRE (1.8.0), Bullet (2.80), Hydrax (0.5.4), CEGUI (0.7.7)
- Mis à jour: version de ModPlug (0.8.8.4)
- Mis à jour: utilisation de VC++ 2010 au lieu de VC++ 2005 pour compiler les bibliothèques Windows (32-bit And 64-bit)
- Mis à jour: la documenation française a été largement complétée et améliorée par Jean R. VIALE.

- Modifié: SetModulePosition() est maintenant en millisecondes

- Corrigé: Nombreux bugs

3D Engine:

- Ajouté: bibliothèque EntityAnimation
- Ajouté: bibliothèque NodeAnimation
- Ajouté: bibliothèque VertexAnimation
- Ajouté: bibliothèque Spline
- Ajouté: support du 'CG Tookit' pour le moteur 3D (pour DirectX et OpenGL), avec InitEngine3D()
- Ajouté: paramètre 'Mode' optionnel à InitEngine3D()
- Ajouté: paramètre 'PickMask' optionnel à MousePick() et CreateEntity()
- Ajouté: RenderWorld() renvoie le temps écoulé depuis le dernier appel (en millisecondes)
- Ajouté: support du brouillard pour SkyBox() et SkyDome()
- Ajouté: 'Couleur' et paramètres 'TextureDimension' à WorldShadows()
- Ajouté: options #PB_World_UnderWater et #PB_World_WaterGodRays pour CreateWater()
- Ajouté: RayPick(), CameraViewWidth(), CameraViewHeight(), CameraViewX(), CameraViewY(), CameraDirection()
- Ajouté: CameraDirectionX/Y/Z(), SetCameraFixedYawAxis()

- Ajouté: paramètre 'IsActive' optionnel à CreateCamera()
- Ajouté: ScaleMaterial(), MaterialFog(), ReloadMaterial(), ResetMaterial(), NodeFixedYawAxis()
- Ajouté: paramètre 'TextureCoordinateIndex' optionnel à AddMaterialLayer()
- Ajouté: support de #PB_Material_Anisotropic à MaterialFilteringMode()
- Ajouté: support de #PB_Default comme #Matiere pour changer la configuration par défaut.
- Ajouté: #PB_Material_Wireframe, #PB_Material_Point et #PB_Material_Solid à MaterialShadingMode()
- Ajouté: SoundListenerLocate()
- Ajouté: paramètres 'DirectionX/Y/Z' optionnels à NodeLookAt()
- Ajouté: paramètre 'Mode' optionnel à MoveLight(), MoveEntity() et MoveNode(), 'Mode' peut être #PB_Local, #PB_Parent ou #PB_World
- Ajouté: paramètre 'Mode' optionnel à MoveCamera(), 'Mode' peut être #PB_Local ou #PB_World
- Ajouté: CreateTexture() gère maintenant les textures alpha
- Ajouté: #PB_Entity_Wireframe, #PB_Entity_Solid, #PB_Entity_Point et #PB_Entity_DisplaySkeleton à EntityRenderMode()
- Ajouté: FreeEntityJoints(), AttachEntityObject(), DetachEntityObject(), EntityBoneX/Y/Z()
- Ajouté: EntityBonePitch(), EntityBoneRoll(), EntityBoneYaw(), EntityFixedYawAxis()
- Ajouté: paramètres 'DirectionX/Y/Z' optionnels à EntityLookAt()
- Ajouté: EntityVelocity(), EntityAngularFactor(), EntityLinearFactor(), EntityCustomParameter(), EntityParentNode()
- Ajouté: EntityBoundingBoxX/Y/Z(), DisableEntityBody()
- Ajouté: #PB_Entity_VelocityX/Y/Z, #PB_Entity_MassCenterX/Y/Z, #PB_Entity_MaxVelocity à Get/SetEntityAttribute()
- Ajouté: LightAttenuation(), LightX/Y/Z(), LightDirection(), LightDirectionX/Y/Z()
- Ajouté: RotateLight(), LightPitch(), LightYaw(), LightRoll()
- Ajouté: GetScriptParticle(), CreateRenderTexture(), UpdateRenderTexture(), SaveRenderTexture()
- Ajouté: CreateCubeMapTexture(), EntityCubeMapTexture()
- Ajouté: HideEffect() gère maintenant le ribbon
- Ajouté: EffectID(), RibbonEffectWidth(), AttachRibbonEffect(), DetachRibbonEffect(), CreateLensFlareEffect(), LensFlareEffectColor()
- Ajouté: EnableHingeJointAngularMotor()
- Ajouté: paramètre '#Joint' pour ConeTwistJoint(), HingeJoint(), PointJoint(), SliderJoint()
- Ajouté: #PB_HingeJoint_LowerLimit et #PB_HingeJoint_UpperLimit à Get/SetJointAttribute()
- Ajouté: paramètres optionnel 'Pitch', 'Yaw', 'Roll' à AddStaticGeometryEntity()
- Ajouté: FreeTerrain(), SetupTerrains(), CreateTerrain(), TerrainPhysicBody(), DefineTerrainTile()
- Ajouté: AddTerrainTexture(), BuildTerrain(), TerrainLocate(), TerrainHeight(), TerrainTileHeightAtPosition()
- Ajouté: TerrainTilePointX/Y(), TerrainTileSize(), GetTerrainTileHeightAtPoint(), SetTerrainTileHeightAtPoint()
- Ajouté: UpdateTerrain(), TerrainTileLayerMapSize(), GetTerrainTileLayerBlend(), SetTerrainTileLayerBlend()
- Ajouté: UpdateTerrainTileLayerBlend(), TerrainMousePick(), SaveTerrain(), TerrainRenderMode()
- Ajouté: gestion des touches spéciales pour InputEvent3D()

- Modifié: CameraLookAt() ne change plus la direction
- Modifié: suppression du paramètre 'Type' sur les commandes Attach/DetachNodeObject()
- Modifié: paramètre 'LargeurInitiale' a été supprimée pour CreateRibbonEffect()

- Supprimé: AnimateEntity() (remplacée par Start/StopEntityAnimation())
- Supprimé: #PB_Entity_Wireframe, #PB_Entity_Point et #PB_Entity_Solid pour EntityRenderMode()
- Supprimé: CheckEntityCollision(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()
  Discussion forum
4 commentaires
  • Atlante77000
    Membre à l'essai
    Beaucoup de nouveautés, une 3d enfin accessible et un nouveau visual designer multi plateformes.
    merci
  • bombseb
    Membre expérimenté
    yeah cool !!

    Pas mal le nouvel IDE
  • comtois
    Responsable Purebasic
    Les versions démos sont bien en ligne, j'ai testé la version windows x86, c'est bien la version 5.00 bien que le texte indique encore la version 4.61.
  • comtois
    Responsable Purebasic
    Quelques retours d'informations concernant les exemples 3D et les possesseurs de cartes 3D intel.

    Tout d'abord un 'quote' venant d'un développeur d'ogre :
    Envoyé par
    Seems pptech has noticed that setting FSAA != 0 on some Intel cards yields cannot create Device. In pptech's case, it may be related to going from Ogre 1.6.3 to 1.7.3. Again, this'll take some time before I can test...
    Certaines cartes intel ne supportent pas l'antialiasing, apparemment à partir de la version 1.7.3 d'ogre.

    ça a permis de mettre en évidence un bug dans la fonction AntialiasingMode() de PureBasic.

    Description du bug :
    Même si vous choisissez 'none' pour l'antialiasing lorsque vous lancez une démo, vous aurez FSAA = 2 dans votre log ! Donc un antialiasing de 2.

    Ce bug est corrigé pour la prochaine version, mais en attendant il faut supprimer l'appel à la fonction AntialiasingMode() dans le fichier 'Screen3DRequester.pb'.

    Voici les lignes à supprimer si vous avez un problème avec les démos et que vous avez une carte intel :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Select AAMode
    
          Case 0:
            AntialiasingMode(#PB_AntialiasingMode_None)
          Case 1:
            AntialiasingMode(#PB_AntialiasingMode_x2)
          Case 2:
            AntialiasingMode(#PB_AntialiasingMode_x4)
          Case 3:
            AntialiasingMode(#PB_AntialiasingMode_x6)
        EndSelect

    Second problème relatif aux cartes intel : Le rendu n'est pas correct dans les exemples 'terrains'. Il est plutôt noir avec des petits bouts de textures par ci par là.

    Pour corriger ce problème il faut convertir les textures .dds dans le format .png. Ou utilisez vos propres textures en évitant le format dds.