j'ai mis au point de nombreuses fonctions pour la création de mesh et de texture
je voulais vous les proposer sous forme d'une DLL, mais j'ai pas réussi
je me demande si il est possible d'utiliser des fonctions provenant des bibliothèques PB (3D, 2ddrawing, vectordrawing) dans une DLL
l'un d'entre vous à t-il essayé / reussi
je ne connais rien dans le domaine des DLL, si quelqu'un peut m’éclairer
j'étais parti (bille en tete)
avec ça pour la DLL ("test.dll"):
Code : Tout sélectionner
ProcedureDLL init3d()
InitEngine3D()
InitSprite()
ProcedureReturn 1
EndProcedure
ProcedureDLL test3d(mesh.i)
CreateCube(mesh,2)
ProcedureReturn 2
EndProcedure
ProcedureDLL testdrawing(output.i)
StartDrawing(output)
Circle(300,300,100,0)
StopDrawing()
ProcedureReturn 3
EndProcedure
ProcedureDLL testvdrawing(output.i)
StartVectorDrawing(output)
AddPathCircle(300,300,100)
VectorSourceColor($ff000000)
StrokePath(1)
StopVectorDrawing()
ProcedureReturn 4
EndProcedure
et ça pour la tester :
Code : Tout sélectionner
If OpenLibrary(0, "test.dll")=0:MessageRequester("!!","erreur dll"):End:EndIf
Prototype.i init3d()
Prototype.i test3d(mesh.i)
Prototype.i testdrawing(output.i)
Prototype.i testvdrawing(output.i)
init3d.init3d=GetFunction(0,"init3d")
test3d.test3d=GetFunction(0,"test3d")
testdrawing.testdrawing=GetFunction(0,"testdrawing")
testvdrawing.testvdrawing=GetFunction(0,"testvdrawing")
;======================================================================================================
; ;init3d()
; InitEngine3D()
; InitSprite()
;
; OpenWindow(0, 0, 0, 800,600, "Exemple de Tube 3D", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; OpenWindowedScreen(WindowID(0), 0, 0, 800,600, 0, 0, 0)
; CreateLight(#PB_Any, RGB(25, 25, 180), -5, 10, 5, #PB_Light_Point)
; CreateCamera(0, 0, 0, 100, 100)
; MoveCamera(0, 2, 4, 3, #PB_Absolute | #PB_Local)
; CameraLookAt(0, 0, 0, 0)
;
; CreateTube(0, 0.5, 0.4, 0.2)
; ;Debug test3d(0)
; CreateEntity(0, MeshID(0), #PB_Material_None)
; Repeat
; RenderWorld()
; FlipBuffers()
; Until WaitWindowEvent(1) = #PB_Event_CloseWindow
OpenWindow(0, 0, 0, 800,600, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0,0,0,800,600)
LoadFont(0, "arial", 20)
;Debug testdrawing(CanvasOutput(0))
Debug testvdrawing(CanvasVectorOutput(0))
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow