j'ai un petit problème avec Next, j'essaie d'ouvrir une fenetre en recopiant le code qui se trouve dans la procédure
iCreateGraphics3DWin(, mais je ne sais pas pourquoi, les coordonnées 0,0 de "la zone de dessin" crée par la fonction iCreateEngineGadget() semble se trouver en lieu et place du menu system de la fenetre windows....
bon, j'ai pas trop fouillassé le biniou, non plus... pis fallait pis t'être pas faire comme ça...
Code : Tout sélectionner
;{
; ------------------------------------------------------------
; n3xt-D exemples
;
; Sample 038 : test primitives 2D
; Historique :
; 25/04/09 19:16 TMyke
;
; ------------------------------------------------------------
;}
; Include files
IncludePath "includes" : IncludeFile "n3xtD_PB.pbi"
;----------------------------------------------------------
;{ déclaration constantes
#TERMINER_APPLICATION =1
Enumeration ; fenêtres
#FMAIN
EndEnumeration
Enumeration ; menu
#MMAIN
EndEnumeration
Enumeration ; item menu
#MMAIN_QUITTER
EndEnumeration
Enumeration ; gadget
EndEnumeration
;}
;{ déclaration structure
;}
;{ déclaration variable globale
Global anglex.f, angley.f, flagXDown.w
Global mox.f, omx.f, moy.l, omy.l
Global *app.l, Quit.l
Global *font.IGUIFont
;}
;{ déclaration procedure
Procedure FenetrePrincipale()
If OpenWindow(#FMAIN,0,0,640,480,"",#PB_Window_SystemMenu |#PB_Window_ScreenCentered)
hwnd.l = WindowID(#FMAIN)
If CreateMenu(#MMAIN,hwnd)
MenuTitle("Fichier")
MenuItem(#MMAIN_QUITTER,"Quitter")
EndIf
width.l = WindowWidth(#FMAIN) : height = WindowHeight(#FMAIN)
; Init PB modules
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
End
EndIf
iInitEngine()
width = width-20 : height-20-MenuHeight()
OpenWindowedScreen(WindowID(#FMAIN), 10, 10, width, height, #False, 0, 0)
*app.l = iCreateEngineGadget(hwnd, #EDT_OPENGL, width, height, #True, #True)
If *app = #Null
End
EndIf
*texture.ITexture = iLoadTexture("media/five.bmp")
*font.IGUIFont = iGetFont()
;-----------------------------------
; load font png
iLoadFont("media/font2.bmp")
quit = 0
Repeat
Repeat
event = WindowEvent()
Select event
;{ traitement evénement gadget
Case #PB_Event_Gadget
Select EventGadget()
EndSelect ;}
;{ traitement autres évenements
Case #PB_Event_CloseWindow
quit = #TERMINER_APPLICATION
;}
EndSelect
Until Event = 0
; if Escape Key, exit
If iGetKeyDown(#KEY_ESCAPE)
quit = #TERMINER_APPLICATION
EndIf
; ---------------
; Render
; ---------------
iBeginScene(100,100,100)
iDrawLine2D(0,0,10,200, $ff00ff00)
iDrawRectangle2D(100, 200, 400, 300, $ffffffff, $ff00ffff, $fff000ff, $ffffff00)
iDrawLine2D( 10,10,200,200, $ff00ff00)
iDrawPolygon2D(200, 200, 128.0)
iDrawRect2D(300, 100, 500, 250, $55ff00ff )
iDrawPolygon2D(400, 400, 64.0, $ff00ffff, 32)
iDrawPolygon2D(100, 450, 64.0, $ff000fff, 3)
iDrawSubRectImage2D(*texture , 500,100,628, 228, 0,0,128,128)
iDrawRectImage2D(*texture ,100, 400, 0,0,100,100, $22aaaaaa )
iDrawImage2D(*texture ,500, 450)
iDrawText(*font, "FPS: "+Str(iFPS()), 10,10,0,0, $ff00ffff)
iEndScene()
Until Quit>0
EndIf
EndProcedure
;}
;{ programme principal
FenetrePrincipale()
End
;}