Dreamotion3D
j'ai plus d'erreur avec Water !! 
il a fallu que je remplace la ligne
par
et que je mette les dll dans system32
j'utilise JAPBE
Pivo a la meme erreur que Water !!
a remplacer par
yen a peut etre d'autres


il a fallu que je remplace la ligne
Code : Tout sélectionner
SetCurrentDirectory("../../media/")
Code : Tout sélectionner
SetCurrentDirectory("../media/")
j'utilise JAPBE
Pivo a la meme erreur que Water !!
Code : Tout sélectionner
SetCurrentDirectory("../../media/")
Code : Tout sélectionner
SetCurrentDirectory("../media/")
alors ?? c'est qui qui deconne ??Cpl.Bator a écrit :A mon avis Dobro , c'est plus un problème d'interface chaise/clavier , ici ca marche bien , j'ai fait une install par dessus une autre & aucun polink



-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Le soucis du repertoire des média arrive parfois, à une époque le moteur le signifiait par
un messagebox, mais sur la demande de certains developpeurs qui souhaitaient créer des
exe pour des jeux, et pour qui c'est pas terrible, je les ai remplacé par un systeme de fichier
'log'.
Sinon, pour la DLL, ne serait-ce pas un problème de repertoir par defaut différent sous
jaPBe par rapport à l'IDE natif de PB (/compilers) ?
un messagebox, mais sur la demande de certains developpeurs qui souhaitaient créer des
exe pour des jeux, et pour qui c'est pas terrible, je les ai remplacé par un systeme de fichier
'log'.
Sinon, pour la DLL, ne serait-ce pas un problème de repertoir par defaut différent sous
jaPBe par rapport à l'IDE natif de PB (/compilers) ?
possible, je n'utilise pas du tout l'editeur officiel ... faudrai demander a Gnozaltmyke a écrit : Sinon, pour la DLL, ne serait-ce pas un problème de repertoir par defaut différent sous
jaPBe par rapport à l'IDE natif de PB (/compilers) ?

bon ça a l'aire d'être bon maintenant, mais faudrai quand meme corriger les path des media
parce que tu distribues les dossiers "Sample3d","Tools"<-- qui est vide d'ailleurs et "Media" avec le meme niveau !!
et le path des listing monte de 2 niveaux
!! c'est pas bon..."../../media/")

en respectant l'install dans system32 tu sera compatible avec tout le monde

-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
En fait, c'est un cas de conscience. Car je distribue le package pour PB, BMax et c++.
Je n'ai qu'un seul rep media, que je ne peux pas répercuter dans chaque repertoire des langage spécifique...
Donc, les chemins font référence au repertoire du SDK, c-à-d que ceux qui testent en
chargeant directement à partir des fichiers du pack ne rencontre pas de soucis...
Pour JaPBe, je prend l'info, je mettrait une mise en garde à la fois concernant cet IDE,
et en mettant un commentaire sur le path employé pour les média si les utilisateurs
déplace les samples dans d'autre répertoires qu'ils pensent aussi par la meme à changer le chemin
en conséquences ....
Pour la DLL, je signifierais aussi qu'en cas de non fonctionnement, de placer par defaut
les DLL dans system32, même si je n'aime pas trop cela...
Je n'ai qu'un seul rep media, que je ne peux pas répercuter dans chaque repertoire des langage spécifique...
Donc, les chemins font référence au repertoire du SDK, c-à-d que ceux qui testent en
chargeant directement à partir des fichiers du pack ne rencontre pas de soucis...
Pour JaPBe, je prend l'info, je mettrait une mise en garde à la fois concernant cet IDE,
et en mettant un commentaire sur le path employé pour les média si les utilisateurs
déplace les samples dans d'autre répertoires qu'ils pensent aussi par la meme à changer le chemin
en conséquences ....
Pour la DLL, je signifierais aussi qu'en cas de non fonctionnement, de placer par defaut
les DLL dans system32, même si je n'aime pas trop cela...
Pour la gestion des erreurs , une Classe d'erreur serais la bienvenue.
Code : Tout sélectionner
class CError
{
public:
void DM_SetError(int code);
int DM_GetLastError();
CList <int> PileErreur;
}
etc...
j'ai un id d'image , j'aimerai en faire une texture sous Dream
comment faire ?
les exemple de Texture, montre que l'on peu charger a partir d'un fichier, ou bien dessiner une texture a l'aide des commande 2D...
mais rien sur l'utilisation d'une image purebasic en possedant un id (ImageID(#Image))
est-ce possible de texturer un objet en utilisant un ID ??

comment faire ?
les exemple de Texture, montre que l'on peu charger a partir d'un fichier, ou bien dessiner une texture a l'aide des commande 2D...
mais rien sur l'utilisation d'une image purebasic en possedant un id (ImageID(#Image))
est-ce possible de texturer un objet en utilisant un ID ??

L'id represente quoi ? un pointeur sur quoi ?
si c'est propre à purebasic , ce n'est pas possible, je pense que le mieux c'est de chopé le tableau de pixel de l'image ( lsi à déjà pondu un code il me semble ) puis de le transferer au tableau de pixel sous dreamotion, j'ai pas les sources sous les mains pour de dire laquelle par contre.
si c'est propre à purebasic , ce n'est pas possible, je pense que le mieux c'est de chopé le tableau de pixel de l'image ( lsi à déjà pondu un code il me semble ) puis de le transferer au tableau de pixel sous dreamotion, j'ai pas les sources sous les mains pour de dire laquelle par contre.

oui c'etait apres l'extraction d'icone des fichiers, je me retrouve avec l'id des image iconeCpl.Bator a écrit :L'id represente quoi ? un pointeur sur quoi ?
si c'est propre à purebasic , ce n'est pas possible, je pense que le mieux c'est de chopé le tableau de pixel de l'image ( lsi à déjà pondu un code il me semble ) puis de le transferer au tableau de pixel sous dreamotion, j'ai pas les sources sous les mains pour de dire laquelle par contre.
mais du coup j'ai trouvé une parade, qui consiste a sauver les images au format bmp dans le Dossier "Icones" puis de recharger sous forme de texture bmp dans Dream...

c'est pas trop grave.. une 60 aines de petites images 32x32 sur un bureau bien chargé, ça va c'est pas la mort

mais une fonction de transfert d'image de Purebasic (librairie image) directement dans Dreamotion serai vraiment pratique, au lieu de passer par les fichier comme actuellement

-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Désolé pour cette courte absence, en ce moment je suis un peu overbooké.
Je vais prendre les topic les uns après les autres au fil de la journée, pour essayer
d'y répondre de mon mieux:
Concernant la jonction des image de PB vers DM3D, pas forcement facile.
Avec SLIDE, nous avions pondu ce code, qu'il faut encore corrigé (ordre des couleurs par exemple, etc...)
Je vous le livre tel-quel (pour des images 32 bits):
Voila, j'espère que cela pourra peut-etre aider un petit peu 
Aller, je retourne au taf, a tout à l'heure pour le reste de l'aventure ..
(Y-a pas de smile genre completement éssouflé ?
)
Je vais prendre les topic les uns après les autres au fil de la journée, pour essayer
d'y répondre de mon mieux:
Concernant la jonction des image de PB vers DM3D, pas forcement facile.
Avec SLIDE, nous avions pondu ce code, qu'il faut encore corrigé (ordre des couleurs par exemple, etc...)
Je vous le livre tel-quel (pour des images 32 bits):
Code : Tout sélectionner
; Include files
IncludePath "Include\" : IncludeFile "dreamotion3d.pbi"
EnableExplicit
Declare DM_PBImageToTexture(image.l,*texture.CTexture)
; Globales
Global anglex.f, angley.f, flagXDown.w
Global mox.f, omx.f, moy.l, omy.l
Global *camera.CCamera
Global *mesh.CMesh
Global *brush.CBrush
Global *texture.CTexture
Global val.l,Quit.b , imageID.l
; Init PB modules
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
End
EndIf
; set graphic window 3D
DM_Graphics3D(800,600,32, 0, 1)
; change directory
SetCurrentDirectory("media/")
; ---------------------------------------
; import some mesh
; ---------------------------------------
; Charge le tigre
*mesh = DM_CreateCube()
; ---------------------------------------
; brush and texture of tiger
; ---------------------------------------
*brush = DM_GetBrush(*mesh)
*texture = DM_GetTexture(*brush)
;DM_LoadTexture("body.bmp", *texture)
imageID = LoadImage(0, "body.bmp")
DM_PBImageToTexture(0, *texture)
; ---------------------------------------
; create one camera
; ---------------------------------------
*camera = DM_CreateCamera()
DM_MoveEntity(*camera, 0,0,-8)
DM_CameraClsColor(*camera, 125, 125, 125)
; if fullscreen, must do it for keep mouse cursor
;change_curseur( #IDC_ARROW )
; ---------------------------------------
; Main loop
; ---------------------------------------
Repeat
ExamineKeyboard()
ExamineMouse()
ShowCursor_(1)
; if Escape Key, exit
If KeyboardReleased(#PB_Key_Escape) Or WindowEvent()=#PB_Event_CloseWindow
Quit=1
EndIf
; move camera with dir key and mouse (left click)
If KeyboardPushed(#PB_Key_Up)
DM_MoveEntity(*camera, 0,0,1)
ElseIf KeyboardPushed(#PB_Key_Down)
DM_MoveEntity(*camera, 0,0,-1)
EndIf
If MouseButton(#PB_MouseButton_Left)
If flagXDown=0
omx = MouseX()
omy = MouseY()
flagXDown=11
Else
moy = MouseY()-omy
angley=(moy/5.0)
omy= MouseY()
mox = MouseX()-omx
anglex=(mox/5.0)
omx= MouseX()
DM_TurnEntity(*camera, angley,anglex,0)
EndIf
Else
flagXDown=0
EndIf
; ---------------
; Render
; ---------------
DM_BeginScene()
DM_RenderWorld(*camera)
; display somes informations
DM_EndScene()
Until Quit=1
DM_ClearGraphics()
End
Procedure DM_PBImageToTexture(image.l,*texture.CTexture=#Null)
Define.l x,y,*ptr,d
Define *Tex.IDirect3DTexture9
Define rect.D3DLOCKED_RECT
; creation d'une texture, vide
*DM_D3DDEVICE\CreateTexture(ImageWidth(image),ImageHeight(image),0,0,#D3DFMT_A8R8G8B8, #D3DPOOL_MANAGED, @*Tex, #Null)
; remplissage
*Tex\LockRect(0,@rect, #Null,0)
*ptr = rect\pBits
d = rect\Pitch - ImageWidth(image) * 4 ; pitch : décalage supplémentaire en octets
StartDrawing(ImageOutput(image))
For x.l = 0 To ImageWidth(image)-1 ; pour chaque colone de la texture
For y.l = 0 To ImageHeight(image)-1 ; pour chaque pixel de la colone
PokeL(*ptr,Point(x,y))
*ptr + 4
Next
*ptr + d
Next
*Tex\UnlockRect(0)
StopDrawing()
PokeL( *texture\Texture, *Tex)
ProcedureReturn *texture
EndProcedure

Aller, je retourne au taf, a tout à l'heure pour le reste de l'aventure ..
(Y-a pas de smile genre completement éssouflé ?

-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Un petit message pour signifier, que pour le moment je doit décrocher de DM3D.
Le moteur en est à un point ou il faudrait que je lui fasse franchir un palier,
ce qui impliquerait de m'y consacrer encore plus..
Et j'avoue que je n'ai plus le temps nécessaires pour lui faire passer ce cap,
bien au contraire. Donc, je prend un peu de recul, pendant quelques temps. Je
n'abandonne pas, mais je vais faire autres choses pour le moment, avec le peu
de temps libre dont je dispose en ce moment. Je ne décroche pas du monde 3D,
je bidouille avec Irrlicht pour l'instant à temps perdu, faute de mieux.
Et je reviendrais à la charge avec DM3D, qui sait, peut-etre avant l'été
si j'arrive à retrouver du temps, ou si quelques coders sont interessés
pour m'aider à faire avancer le moteur.
Encore pardon, surtout vis-à-vis de ceux qui m'ont soutenu, et qui ont pris
la peine de coder avec ce moteur qui me tient à coeur.
Alors à très bientôt.
PS: je viendrais faire un petit tour dans le coin de temps en temps, c'est plus fort que moi.
Le moteur en est à un point ou il faudrait que je lui fasse franchir un palier,
ce qui impliquerait de m'y consacrer encore plus..
Et j'avoue que je n'ai plus le temps nécessaires pour lui faire passer ce cap,
bien au contraire. Donc, je prend un peu de recul, pendant quelques temps. Je
n'abandonne pas, mais je vais faire autres choses pour le moment, avec le peu
de temps libre dont je dispose en ce moment. Je ne décroche pas du monde 3D,
je bidouille avec Irrlicht pour l'instant à temps perdu, faute de mieux.
Et je reviendrais à la charge avec DM3D, qui sait, peut-etre avant l'été
si j'arrive à retrouver du temps, ou si quelques coders sont interessés
pour m'aider à faire avancer le moteur.
Encore pardon, surtout vis-à-vis de ceux qui m'ont soutenu, et qui ont pris
la peine de coder avec ce moteur qui me tient à coeur.
Alors à très bientôt.
PS: je viendrais faire un petit tour dans le coin de temps en temps, c'est plus fort que moi.