Publié : mar. 18/mars/2008 21:27
Bon, quand tu as la DLL dans le rep system, les samples tournent-ils tous bien ? ou dans le repertoire du sample ?
attends j'essai... mais tout a l'heure j'avais plus l'erreur mais les exemples plantaient pour diverse causestmyke a écrit :Bon, quand tu as la DLL dans le rep system, les samples tournent-ils tous bien ? ou dans le repertoire du sample ?
Code : Tout sélectionner
SetCurrentDirectory("../../media/")
Code : Tout sélectionner
SetCurrentDirectory("../media/")
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
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) ?
!! c'est pas bon..."../../media/")
Code : Tout sélectionner
class CError
{
public:
void DM_SetError(int code);
int DM_GetLastError();
CList <int> PileErreur;
}
etc...
Je pense qu'il va le voir sans que tu lui disesmessage prive pour toi tmyke
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.
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