begin process at 2010 03 11 19:47:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > TEXTURE AVEC DIRECTX9

TEXTURE AVEC DIRECTX9


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :directx9, texture3d, d3d9, ipicture Niveau :Débutant Date de création :17/09/2008 Vu / téléchargé :2 645 / 100

Auteur : quoi

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Un dé texturé faisant une rotation sur les trois axes.
utilisation d'objects com ce trouvant dans d3d9.inc(réecris en asm)
macro pérmettant une utilisation aisée des fonctions directX
LoadTexture qui permet de charger une texture *.gif,jpeg qui ce trouve
dans la resource.


Source

  • .586
  • .model flat, stdcall
  • option casemap:none
  • include windows.inc
  • include kernel32.inc
  • include user32.inc
  • include winmm.inc
  • include ole32.inc
  • include oleaut32.inc
  • include gdi32.inc
  • include IPicture.inc
  • include d3d9.inc
  • includelib kernel32
  • includelib user32.lib
  • includelib winmm.lib
  • includelib ole32.lib
  • includelib oleaut32.lib
  • includelib gdi32.lib
  • includelib d3d9.lib
  • INIT PROTO :DWORD
  • MsgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
  • InitDlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
  • PerCent PROTO :DWORD,:DWORD
  • InitD3D PROTO :DWORD,:DWORD
  • LoadTexture PROTO :DWORD,:DWORD
  • CreateCylinder PROTO :DWORD,:DWORD, :DWORD
  • SetupMatrices PROTO
  • SetupLights PROTO
  • Cleanup PROTO
  • Render PROTO
  • InitGeometry PROTO
  • ThreadP PROTO
  • MatrixRotationY PROTO :PTR,:FLOAT
  • MatrixLookAtLH PROTO :PTR,:PTR,:PTR,:PTR
  • MatrixPerspectiveFovLH PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
  • CUSTOMVERTEX STRUCT
  • pos D3DVECTOR <>
  • n D3DVECTOR <>
  • col DWORD ?
  • tu REAL4 ?
  • tv REAL4 ?
  • CUSTOMVERTEX ENDS
  • D3DFVF_CUSTOMVERTEX equ D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_DIFFUSE or D3DFVF_TEX1
  • .DATA
  • align 16
  • matWorld D3DXMATRIXA16 <>
  • matView D3DXMATRIXA16 <>
  • matProj D3DXMATRIXA16 <>
  • d3ddm D3DDISPLAYMODE<>
  • ppvIDirect3D9 dd 0
  • ppvIDirect3DDevice9 dd 0
  • pVtxBCube dd 0
  • pVtxBCylinder dd 0
  • ppvIDirect3DTexture9 dd 0
  • pVertices dd 0
  • start_time dd 0
  • elapse_time dd 20
  • lpThreadId dd 0
  • Hwnd dd 0
  • cx_screen dd 0
  • cy_screen dd 0
  • View_Mode dd 0
  • FovLHParam2 dd 0
  • .CODE
  • include D3XMATH.ASM
  • START: INVOKE DialogBoxParam,400000h,100,0, ADDR InitDlgProc,0
  • INVOKE INIT,50
  • INVOKE Cleanup
  • INVOKE ExitProcess,0
  • ;################################################# INITIALISATION ##############################################
  • INIT PROC size_percent:DWORD
  • LOCAL msg:MSG
  • LOCAL width_hwnd,height_hwnd
  • INVOKE CreateDialogParam,400000h,101,0,0,0
  • mov Hwnd,eax
  • INVOKE LoadIcon,400000h,200
  • INVOKE SendMessage,Hwnd,WM_SETICON,0,eax
  • INVOKE GetSystemMetrics,SM_CXSCREEN
  • mov cx_screen,eax
  • INVOKE GetSystemMetrics,SM_CYSCREEN
  • mov cy_screen,eax
  • fild cy_screen
  • fidiv cx_screen
  • fstp FovLHParam2
  • mov edi,cx_screen
  • mov eax,edi
  • shr edi,1
  • INVOKE PerCent,eax,size_percent
  • mov edx,eax
  • shr eax,1
  • sub edi,eax
  • mov esi,cy_screen
  • mov eax,esi
  • shr esi,1
  • INVOKE PerCent,eax,size_percent
  • mov ecx,eax
  • shr eax,1
  • sub esi,eax
  • INVOKE SetWindowPos,Hwnd,0,edi,esi,edx,ecx,0
  • INVOKE InitD3D,Hwnd,View_Mode
  • INVOKE InitGeometry
  • INVOKE ShowWindow,Hwnd, SW_SHOWNORMAL
  • INVOKE UpdateWindow,Hwnd
  • INVOKE timeGetTime
  • add eax,elapse_time
  • mov start_time,eax
  • INVOKE CreateThread,0,0,ADDR ThreadP,0,0,addr lpThreadId
  • L_0: INVOKE GetMessage,ADDR msg,0,0,0
  • mov eax,msg.message
  • cmp eax,WM_COMMAND
  • je L_1
  • cmp eax,WM_KEYDOWN
  • jne L_2
  • cmp msg.wParam,VK_ESCAPE
  • je L_1
  • L_2: INVOKE TranslateMessage, ADDR msg
  • INVOKE DispatchMessage, ADDR msg
  • jmp L_0
  • L_1: ret
  • INIT ENDP
  • ;##################################################### INITIALISATION DU DEVICE 3D #######################################
  • InitD3D PROC hWnd:DWORD, Full_Scr:DWORD
  • LOCAL d3dpp:D3DPRESENT_PARAMETERS
  • INVOKE RtlZeroMemory,addr d3dpp,D3DPRESENT_PARAMETERS
  • INVOKE Direct3DCreate9,D3D_SDK_VERSION
  • mov ppvIDirect3D9,eax
  • IDirect3D9 GetAdapterDisplayMode,D3DADAPTER_DEFAULT,ADDR d3ddm
  • mov eax,Full_Scr
  • not eax
  • and eax,1
  • mov d3dpp.Windowed,eax
  • mov d3dpp.SwapEffect,D3DSWAPEFFECT_DISCARD
  • or eax,eax
  • jne @F
  • push d3ddm.Format
  • push d3ddm.Width1
  • push d3ddm.Height
  • pop d3dpp.BackBufferHeight
  • pop d3dpp.BackBufferWidth
  • pop d3dpp.BackBufferFormat
  • INVOKE ShowCursor,0
  • @@: IDirect3D9 CreateDevice,D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL, hWnd,\
  • D3DCREATE_SOFTWARE_VERTEXPROCESSING,addr d3dpp, addr ppvIDirect3DDevice9
  • IDirect3DDevice9 SetRenderState,D3DRS_CULLMODE,D3DCULL_CCW
  • IDirect3DDevice9 SetRenderState, D3DRS_ZENABLE, TRUE
  • ret
  • InitD3D endp
  • ;#################################################### THREAD PROC ################################################################
  • ThreadP PROC
  • @@: INVOKE Render
  • jmp @B
  • ret
  • ThreadP ENDP
  • ;############################################### INITGEOMETRY #####################################################################
  • InitGeometry PROC
  • .CONST
  • ;FRONT
  • Vertices REAL4 1.0r, 1.0r, -1.0r, 1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.0r
  • REAL4 1.0r, -1.0r, -1.0r, 1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.333r
  • REAL4 -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.0r, 0.333r
  • REAL4 -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.0r, 0.333r
  • REAL4 -1.0r, 1.0r, -1.0r, -1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.0r, 0.0r
  • REAL4 1.0r, 1.0r, -1.0r, 1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r, 0.0r
  • ;RIGHT
  • REAL4 1.0r, 1.0r, 1.0r, 1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.0r
  • REAL4 1.0r, -1.0r, 1.0r, 1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.333r
  • REAL4 1.0r, -1.0r, -1.0r, 1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.333r
  • REAL4 1.0r, -1.0r, -1.0r, 1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.333r
  • REAL4 1.0r, 1.0r, -1.0r, 1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.0r
  • REAL4 1.0r, 1.0r, 1.0r, 1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.0r
  • ;BACK
  • REAL4 -1.0r, 1.0r, 1.0r, -1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.999r,0.0r
  • REAL4 -1.0r, -1.0r, 1.0r, -1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.999r,0.333r
  • REAL4 1.0r, -1.0r, 1.0r, 1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.333r
  • REAL4 1.0r, -1.0r, 1.0r, 1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.333r
  • REAL4 1.0r, 1.0r, 1.0r, 1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.0r
  • REAL4 -1.0r, 1.0r, 1.0r, -1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.999r,0.0r
  • ;DOWN
  • REAL4 -1.0r, -1.0r, 1.0r, -1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.0r,0.666r
  • REAL4 -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.0r,0.333r
  • REAL4 1.0r, -1.0r, -1.0r, 1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.333r
  • REAL4 1.0r, -1.0r, -1.0r, 1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.333r
  • REAL4 1.0r, -1.0r, 1.0r, 1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.666r
  • REAL4 -1.0r, -1.0r, 1.0r, -1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.0r,0.666r
  • ;LEFT
  • REAL4 -1.0r, -1.0r, 1.0r, -1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.666r
  • REAL4 -1.0r, 1.0r, 1.0r, -1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.333r
  • REAL4 -1.0r, 1.0r, -1.0r, -1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.333r
  • REAL4 -1.0r, 1.0r, -1.0r, -1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.333r
  • REAL4 -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.666r
  • REAL4 -1.0r, -1.0r, 1.0r, -1.0r, -1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.333r,0.666r
  • ;UP
  • REAL4 -1.0r, 1.0r, -1.0r, -1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.666r
  • REAL4 -1.0r, 1.0r, 1.0r, -1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.333r
  • REAL4 1.0r, 1.0r, 1.0r, 1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.999r,0.333r
  • REAL4 1.0r, 1.0r, -1.0r, 1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.999r,0.666r
  • REAL4 -1.0r, 1.0r, -1.0r, -1.0r, 1.0r, -1.0r
  • DD 00FFFFFFh
  • REAL4 0.666r,0.666r
  • REAL4 1.0r, 1.0r, 1.0r, 1.0r, 1.0r, 1.0r
  • DD 00FFFFFFh
  • REAL4 0.999r,0.333r
  • size_vert equ $ - offset Vertices
  • .CODE
  • INVOKE LoadTexture,400,addr ppvIDirect3DTexture9
  • IDirect3DDevice9 CreateVertexBuffer,size_vert,0, D3DFVF_CUSTOMVERTEX ,D3DPOOL_DEFAULT,addr pVtxBCube, NULL
  • IDirect3DVertexBuffer9 pVtxBCube,Lock1,0,size_vert,addr pVertices,0
  • mov ecx,size_vert
  • lea esi,Vertices
  • mov edi,pVertices
  • rep movsb
  • IDirect3DVertexBuffer9 pVtxBCube,Unlock
  • INVOKE CreateCylinder,20,60,60
  • ret
  • InitGeometry ENDP
  • ;######################################################### RENDER ############################################################
  • Render PROC
  • IDirect3DDevice9 Clear,0, NULL,D3DCLEAR_TARGET,000000FFh,3F800000h,0
  • IDirect3DDevice9 BeginScene
  • INVOKE SetupLights
  • INVOKE SetupMatrices
  • IDirect3DDevice9 SetFVF,D3DFVF_CUSTOMVERTEX
  • IDirect3DDevice9 SetTexture, 0, ppvIDirect3DTexture9
  • IDirect3DDevice9 SetSamplerState,0,D3DSAMP_MAGFILTER,D3DTEXF_ANISOTROPIC
  • IDirect3DDevice9 SetStreamSource,0,pVtxBCylinder, 0, sizeof CUSTOMVERTEX
  • IDirect3DDevice9 DrawPrimitive,D3DPT_TRIANGLELIST,0,40
  • IDirect3DDevice9 SetStreamSource,0,pVtxBCube, 0, sizeof CUSTOMVERTEX
  • IDirect3DDevice9 DrawPrimitive,D3DPT_TRIANGLELIST,0,12
  • IDirect3DDevice9 EndScene
  • IDirect3DDevice9 Present,0,0,0,0
  • ret
  • Render ENDP
  • ;##################################################### SETUPMATRICES ###########################################################
  • SetupMatrices PROC
  • INVOKE timeGetTime
  • cmp eax,start_time
  • jc @F
  • add eax,elapse_time
  • mov start_time,eax
  • push 36
  • push pVertices
  • push 3C8E8A72h ; 1 degré radian
  • call RVTXLY
  • push 36
  • push pVertices
  • push 3C8E8A72h
  • call RVTXLX
  • push 36
  • push pVertices
  • push 3C8E8A72h
  • call RVTXLZ
  • @@: lea eax,matWorld
  • push eax
  • call MatrixIdentity
  • IDirect3DDevice9 SetTransform,D3DTS_WORLDMATRIX,ADDR matWorld
  • .DATA
  • tmpvec31 D3DVECTOR <0.0f, 0.0f,-5.0f>
  • tmpvec32 D3DVECTOR <0.0f, 0.0f, 0.0f>
  • tmpvec33 D3DVECTOR <0.0f, 1.0f, 0.0f>
  • .CODE
  • INVOKE MatrixLookAtLH, ADDR matView, ADDR tmpvec31, ADDR tmpvec32, ADDR tmpvec33
  • IDirect3DDevice9 SetTransform, D3DTS_VIEW, ADDR matView
  • INVOKE MatrixPerspectiveFovLH, ADDR matProj,3F490FDBh,FovLHParam2,3F800000h,43FA0000h
  • IDirect3DDevice9 SetTransform, D3DTS_PROJECTION, ADDR matProj
  • ret
  • SetupMatrices ENDP
  • ;################################################################### SetupLights ###############################################
  • SetupLights PROC
  • LOCAL light:D3DLIGHT9
  • INVOKE RtlZeroMemory,ADDR light,sizeof D3DLIGHT9
  • mov light.type1,D3DLIGHT_DIRECTIONAL
  • fld1
  • fst light.Diffuse.r
  • fst light.Diffuse.g
  • fstp light.Diffuse.b
  • .DATA
  • vecDir D3DVECTOR <0.5,-0.1,1.0>
  • .CODE
  • lea edx,light.Direction
  • lea eax,vecDir
  • push eax
  • push edx
  • call Normalize
  • IDirect3DDevice9 SetLight, 0, ADDR light
  • IDirect3DDevice9 LightEnable, 0, TRUE
  • IDirect3DDevice9 SetRenderState, D3DRS_LIGHTING, TRUE
  • ret
  • SetupLights ENDP
  • ;############################################################ CLEANUP #######################################################
  • Cleanup PROC
  • IDirect3DTexture9 Release
  • mov ppvIDirect3DTexture9,0
  • IDirect3DVertexBuffer9 pVtxBCube,Release
  • mov pVtxBCube,0
  • IDirect3DVertexBuffer9 pVtxBCylinder,Release
  • mov pVtxBCylinder,0
  • IDirect3DDevice9 Release
  • mov ppvIDirect3DDevice9,0
  • IDirect3D9 Release
  • mov ppvIDirect3D9,0
  • ret
  • Cleanup ENDP
  • ;########################################################## InitDlgProc #######################################################
  • InitDlgProc PROC hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM
  • pushad
  • mov eax,uMsg
  • cmp eax,WM_INITDIALOG
  • je WMINIT
  • cmp eax,WM_COMMAND
  • je WMCMD
  • cmp eax,WM_CLOSE
  • je WMCLOSE
  • jmp DLG
  • WMINIT:
  • .DATA
  • item0 db 'NONE',0
  • item1 db '2X',0
  • item2 db '4X',0
  • item3 db '8X',0
  • .CODE
  • INVOKE SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item0
  • INVOKE SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item1
  • INVOKE SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item2
  • INVOKE SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item3
  • INVOKE SendDlgItemMessage,hwnd,300,CB_SETCURSEL ,0,0
  • jmp DLG
  • WMCMD: mov eax,wParam
  • and eax,0FFFFh
  • cmp eax,303
  • je OK
  • cmp eax,304
  • jne DLG
  • INVOKE ExitProcess,0
  • OK: INVOKE GetDlgItem,hwnd,301
  • INVOKE SendMessage, eax, BM_GETCHECK, 0, 0
  • mov View_Mode,eax
  • WMCLOSE:INVOKE EndDialog, hwnd, 0
  • DLG: popad
  • xor eax, eax
  • ret
  • InitDlgProc ENDP
  • ;############################################################### CreateCylinder
  • CreateCylinder PROC nFace:DWORD,ray:DWORD,h:DWORD
  • LOCAL nVrtx,pCylind,pVrtx,angC,heightC
  • push 2
  • fild h
  • fidiv dword ptr [esp]
  • fstp heightC
  • ;-------------------------------------calcul angle
  • push 180
  • fild dword ptr [esp]
  • fidiv nFace
  • push 180
  • fidiv dword ptr [esp]
  • fldpi
  • fmulp st(1),st
  • fstp angC
  • add esp,12
  • ;-------------------------------------cree le buffer
  • mov eax,nFace
  • shl eax,1
  • add eax,2
  • mov ecx,CUSTOMVERTEX
  • mul ecx
  • INVOKE GlobalAlloc,GPTR,eax
  • mov pVrtx,eax
  • mov edi,pVrtx
  • ;-------------------------------------remplis le buffer
  • sub ecx,ecx
  • mov eax,nFace
  • inc eax
  • @@: push ecx
  • fld angC
  • fimul dword ptr [esp]
  • fsincos
  • fst dword ptr [edi+12] ;p1.nx
  • fst dword ptr [edi+48] ;p2.nx
  • fchs
  • fimul ray
  • fst dword ptr [edi] ;p1.x
  • fstp dword ptr [edi+36] ;p2.x
  • fchs
  • fst dword ptr [edi+20] ;p1.nz
  • fst dword ptr [edi+56] ;p2.nz
  • fchs
  • fimul ray
  • fst dword ptr [edi+8] ;p1.z
  • fstp dword ptr [edi+44] ;p2.z
  • fld heightC
  • fst dword ptr [edi+40] ;p2.y
  • fchs
  • fstp dword ptr [edi+4] ;p1.y
  • fld1
  • fidiv nFace
  • fimul dword ptr [esp]
  • fst dword ptr [edi+28] ;p1.tu
  • fstp dword ptr [edi+64] ;p2.tu
  • push 3F2AA64Ch
  • fld dword ptr [esp]
  • fstp dword ptr [edi+68] ;p1.tv
  • fld1
  • fstp dword ptr [edi+32] ;p2.tv
  • mov dword ptr [edi+24],00FFFFFFh
  • mov dword ptr [edi+60],00FFFFFFh
  • add edi,72
  • add esp,8
  • inc ecx
  • dec eax
  • jnz @B
  • mov eax,CUSTOMVERTEX*6
  • mov ecx,nFace
  • mul ecx
  • mov nVrtx,eax
  • IDirect3DDevice9 CreateVertexBuffer,nVrtx,0, D3DFVF_CUSTOMVERTEX ,D3DPOOL_DEFAULT,addr pVtxBCylinder, NULL
  • IDirect3DVertexBuffer9 pVtxBCylinder,Lock1,0,nVrtx,addr pCylind,0
  • mov eax,nFace
  • mov esi,pVrtx
  • mov edi,pCylind
  • @@: mov ecx,CUSTOMVERTEX*4
  • rep movsb
  • sub esi,CUSTOMVERTEX*2
  • mov ecx,CUSTOMVERTEX
  • rep movsb
  • sub esi,CUSTOMVERTEX*2
  • mov ecx,CUSTOMVERTEX
  • rep movsb
  • dec eax
  • jnz @B
  • IDirect3DVertexBuffer9 pVtxBCylinder,Unlock
  • INVOKE GlobalFree,pVrtx
  • ret
  • CreateCylinder ENDP
  • include loadTexture.asm
  • END START
.586
.model flat, stdcall
option casemap:none
 
include windows.inc
include kernel32.inc
include user32.inc
include winmm.inc
include ole32.inc
include oleaut32.inc
include gdi32.inc
include IPicture.inc
include	d3d9.inc


includelib kernel32
includelib user32.lib
includelib winmm.lib
includelib ole32.lib
includelib oleaut32.lib
includelib gdi32.lib
includelib d3d9.lib


	
INIT     			PROTO  :DWORD 
MsgProc   			PROTO  :HWND,:UINT,:WPARAM,:LPARAM
InitDlgProc   			PROTO  :HWND,:UINT,:WPARAM,:LPARAM
PerCent       			PROTO  :DWORD,:DWORD
InitD3D       			PROTO  :DWORD,:DWORD
LoadTexture             	PROTO  :DWORD,:DWORD
CreateCylinder                  PROTO  :DWORD,:DWORD, :DWORD
SetupMatrices 			PROTO
SetupLights             	PROTO
Cleanup                 	PROTO 
Render                  	PROTO
InitGeometry            	PROTO
ThreadP                 	PROTO
MatrixRotationY         	PROTO  :PTR,:FLOAT
MatrixLookAtLH          	PROTO  :PTR,:PTR,:PTR,:PTR
MatrixPerspectiveFovLH  	PROTO  :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
CUSTOMVERTEX STRUCT
	pos       		D3DVECTOR <>
        n         		D3DVECTOR <>
	col       		DWORD ?	
        tu        		REAL4 ?
	tv	  		REAL4	?
CUSTOMVERTEX ENDS
D3DFVF_CUSTOMVERTEX 		equ D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_DIFFUSE  or D3DFVF_TEX1  

.DATA
align 			16		
matWorld			D3DXMATRIXA16 <> 
matView				D3DXMATRIXA16 <>
matProj				D3DXMATRIXA16 <>
d3ddm				D3DDISPLAYMODE<>
ppvIDirect3D9	           	dd 0
ppvIDirect3DDevice9	   	dd 0
pVtxBCube                	dd 0
pVtxBCylinder                   dd 0
ppvIDirect3DTexture9       	dd 0 
pVertices                  	dd 0
start_time                 	dd 0
elapse_time                	dd 20                  
lpThreadId                 	dd 0
Hwnd                       	dd 0
cx_screen                  	dd 0
cy_screen                  	dd 0
View_Mode                  	dd 0
FovLHParam2                     dd 0

.CODE
include     			D3XMATH.ASM
START:	INVOKE      		DialogBoxParam,400000h,100,0, ADDR InitDlgProc,0
 	INVOKE 			INIT,50	
        INVOKE 			Cleanup	
	INVOKE 			ExitProcess,0

;################################################# INITIALISATION  ##############################################

INIT    PROC  			size_percent:DWORD
        LOCAL 			msg:MSG
        LOCAL 			width_hwnd,height_hwnd
        INVOKE 			CreateDialogParam,400000h,101,0,0,0
        mov    			Hwnd,eax
        INVOKE 			LoadIcon,400000h,200
        INVOKE 			SendMessage,Hwnd,WM_SETICON,0,eax
 	INVOKE 			GetSystemMetrics,SM_CXSCREEN
        mov    			cx_screen,eax
        INVOKE 			GetSystemMetrics,SM_CYSCREEN
        mov    			cy_screen,eax
	fild    		cy_screen
        fidiv   		cx_screen
        fstp    		FovLHParam2
	mov 			edi,cx_screen
        mov             	eax,edi
        shr 			edi,1
        INVOKE 			PerCent,eax,size_percent
        mov 			edx,eax
        shr 			eax,1
        sub 			edi,eax
        mov 			esi,cy_screen
        mov             	eax,esi
        shr 			esi,1
        INVOKE 			PerCent,eax,size_percent
        mov 			ecx,eax
        shr 			eax,1
        sub 			esi,eax
	INVOKE  		SetWindowPos,Hwnd,0,edi,esi,edx,ecx,0
        INVOKE      		InitD3D,Hwnd,View_Mode
        INVOKE      		InitGeometry
        INVOKE     		ShowWindow,Hwnd, SW_SHOWNORMAL 		
	INVOKE     		UpdateWindow,Hwnd
        INVOKE     		timeGetTime
        add        		eax,elapse_time
        mov        		start_time,eax
        INVOKE 			CreateThread,0,0,ADDR ThreadP,0,0,addr lpThreadId
L_0:	INVOKE 			GetMessage,ADDR msg,0,0,0
        mov		        eax,msg.message
        cmp  	                eax,WM_COMMAND
        je   	                L_1
        cmp             	eax,WM_KEYDOWN
        jne             	L_2
        cmp             	msg.wParam,VK_ESCAPE
        je              	L_1
L_2:    INVOKE 			TranslateMessage, ADDR msg
        INVOKE 			DispatchMessage, ADDR msg
        jmp 			L_0
L_1:    ret
INIT    ENDP

;##################################################### INITIALISATION DU DEVICE 3D #######################################

InitD3D PROC  			hWnd:DWORD, Full_Scr:DWORD 
	LOCAL 			d3dpp:D3DPRESENT_PARAMETERS
	INVOKE 			RtlZeroMemory,addr d3dpp,D3DPRESENT_PARAMETERS
        INVOKE 			Direct3DCreate9,D3D_SDK_VERSION
        mov 			ppvIDirect3D9,eax
	IDirect3D9 		GetAdapterDisplayMode,D3DADAPTER_DEFAULT,ADDR d3ddm
        mov 			eax,Full_Scr
   	not 			eax
        and 			eax,1
	mov 			d3dpp.Windowed,eax
	mov 			d3dpp.SwapEffect,D3DSWAPEFFECT_DISCARD                       
        or 			eax,eax
        jne 			@F
	push 			d3ddm.Format
        push 			d3ddm.Width1
        push 			d3ddm.Height
        pop  			d3dpp.BackBufferHeight
        pop  			d3dpp.BackBufferWidth
        pop  			d3dpp.BackBufferFormat
        INVOKE     		ShowCursor,0
@@:	IDirect3D9 		CreateDevice,D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL, hWnd,\
           			D3DCREATE_SOFTWARE_VERTEXPROCESSING,addr d3dpp, addr ppvIDirect3DDevice9
        IDirect3DDevice9  	SetRenderState,D3DRS_CULLMODE,D3DCULL_CCW 
        IDirect3DDevice9  	SetRenderState, D3DRS_ZENABLE, TRUE
        ret
InitD3D endp

;#################################################### THREAD PROC ################################################################

ThreadP PROC
@@: 	INVOKE 			Render
    	jmp 			@B
	ret
ThreadP ENDP

;############################################### INITGEOMETRY ##################################################################### 

InitGeometry  			PROC
.CONST
;FRONT
	Vertices 		REAL4   1.0r,  1.0r, -1.0r,  1.0r,  1.0r, -1.0r
         			DD  00FFFFFFh 
         			REAL4   0.333r,0.0r
         			REAL4   1.0r, -1.0r, -1.0r,  1.0r, -1.0r, -1.0r
         			DD  00FFFFFFh
         			REAL4   0.333r,0.333r
         			REAL4  -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
         			DD  00FFFFFFh
         			REAL4   0.0r,  0.333r 
         			REAL4  -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
         			DD  00FFFFFFh 
         			REAL4   0.0r,  0.333r
         			REAL4  -1.0r,  1.0r, -1.0r, -1.0r,  1.0r, -1.0r 
         			DD  00FFFFFFh
         			REAL4   0.0r,  0.0r  
         			REAL4   1.0r,  1.0r, -1.0r,  1.0r,  1.0r, -1.0r 
         			DD  00FFFFFFh
         			REAL4   0.333r,  0.0r
        			;RIGHT
         			REAL4   1.0r,  1.0r,  1.0r,  1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh 
         			REAL4   0.666r,0.0r
         			REAL4   1.0r, -1.0r,  1.0r,  1.0r, -1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.666r,0.333r
         			REAL4   1.0r, -1.0r, -1.0r,  1.0r, -1.0r, -1.0r 
         			DD  00FFFFFFh
         			REAL4   0.333r,0.333r
         			REAL4   1.0r, -1.0r, -1.0r,  1.0r, -1.0r, -1.0r 
         			DD  00FFFFFFh 
         			REAL4   0.333r,0.333r
         			REAL4   1.0r,  1.0r, -1.0r,  1.0r,  1.0r, -1.0r
         			DD  00FFFFFFh
         			REAL4   0.333r,0.0r  
         			REAL4   1.0r,  1.0r,  1.0r,  1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.666r,0.0r
        			;BACK
         			REAL4  -1.0r,  1.0r, 1.0r,  -1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh 
         			REAL4   0.999r,0.0r
         			REAL4  -1.0r, -1.0r,  1.0r, -1.0r, -1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.999r,0.333r
         			REAL4   1.0r, -1.0r,  1.0r,  1.0r, -1.0r,  1.0r 
         			DD  00FFFFFFh
         			REAL4   0.666r,0.333r 
         			REAL4   1.0r, -1.0r,  1.0r,  1.0r, -1.0r,  1.0r
         			DD  00FFFFFFh 
         			REAL4   0.666r,0.333r
         			REAL4   1.0r,  1.0r,  1.0r,  1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.666r,0.0r  
         			REAL4  -1.0r,  1.0r,  1.0r, -1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.999r,0.0r
         			;DOWN
         			REAL4  -1.0r, -1.0r,  1.0r, -1.0r, -1.0r,  1.0r
         			DD  00FFFFFFh 
         			REAL4   0.0r,0.666r
         			REAL4  -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r
         			DD  00FFFFFFh
         			REAL4   0.0r,0.333r
         			REAL4   1.0r, -1.0r, -1.0r,  1.0r, -1.0r, -1.0r 
         			DD  00FFFFFFh
         			REAL4   0.333r,0.333r
         			REAL4   1.0r, -1.0r, -1.0r,  1.0r, -1.0r, -1.0r 
         			DD  00FFFFFFh 
         			REAL4   0.333r,0.333r
         			REAL4   1.0r, -1.0r,  1.0r,  1.0r, -1.0r,  1.0r 
         			DD  00FFFFFFh
         			REAL4   0.333r,0.666r  
         			REAL4  -1.0r, -1.0r,  1.0r, -1.0r, -1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.0r,0.666r
         			;LEFT
         			REAL4  -1.0r, -1.0r,  1.0r, -1.0r, -1.0r,  1.0r
         			DD  00FFFFFFh 
         			REAL4   0.333r,0.666r
         			REAL4  -1.0r,  1.0r,  1.0r, -1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.333r,0.333r
         			REAL4  -1.0r,  1.0r, -1.0r, -1.0r,  1.0r, -1.0r 
         			DD  00FFFFFFh
         			REAL4   0.666r,0.333r
         			REAL4  -1.0r,  1.0r, -1.0r, -1.0r,  1.0r, -1.0r
         			DD  00FFFFFFh 
         			REAL4   0.666r,0.333r
         			REAL4  -1.0r, -1.0r, -1.0r, -1.0r, -1.0r, -1.0r 
         			DD  00FFFFFFh
         			REAL4   0.666r,0.666r  
         			REAL4  -1.0r, -1.0r,  1.0r, -1.0r, -1.0r,  1.0r 
         			DD  00FFFFFFh
         			REAL4   0.333r,0.666r
         			;UP
         			REAL4  -1.0r,  1.0r, -1.0r, -1.0r,  1.0r, -1.0r
         			DD  00FFFFFFh 
         			REAL4   0.666r,0.666r
         			REAL4  -1.0r,  1.0r,  1.0r, -1.0r,  1.0r,  1.0r
         			DD  00FFFFFFh
         			REAL4   0.666r,0.333r
         			REAL4   1.0r,  1.0r,  1.0r,  1.0r,  1.0r,  1.0r 
         			DD  00FFFFFFh
         			REAL4   0.999r,0.333r
         			REAL4   1.0r,  1.0r, -1.0r,  1.0r,  1.0r, -1.0r 
         			DD  00FFFFFFh 
         			REAL4   0.999r,0.666r
         			REAL4  -1.0r,  1.0r, -1.0r, -1.0r,  1.0r, -1.0r
         			DD  00FFFFFFh
         			REAL4   0.666r,0.666r  
         			REAL4   1.0r,  1.0r,  1.0r,  1.0r,  1.0r,  1.0r 
         			DD  00FFFFFFh
         			REAL4   0.999r,0.333r
	size_vert 		equ $ - offset Vertices
.CODE
	INVOKE 			LoadTexture,400,addr ppvIDirect3DTexture9 
	IDirect3DDevice9        CreateVertexBuffer,size_vert,0, D3DFVF_CUSTOMVERTEX ,D3DPOOL_DEFAULT,addr pVtxBCube, NULL
	IDirect3DVertexBuffer9  pVtxBCube,Lock1,0,size_vert,addr pVertices,0
        mov 			ecx,size_vert
	lea 			esi,Vertices
	mov 			edi,pVertices
	rep 			movsb
	IDirect3DVertexBuffer9 	pVtxBCube,Unlock
	INVOKE			CreateCylinder,20,60,60
	ret    
InitGeometry ENDP
;######################################################### RENDER ############################################################
Render 	PROC 
	IDirect3DDevice9 	Clear,0, NULL,D3DCLEAR_TARGET,000000FFh,3F800000h,0 
	IDirect3DDevice9 	BeginScene
	INVOKE 			SetupLights
	INVOKE 			SetupMatrices
        IDirect3DDevice9 	SetFVF,D3DFVF_CUSTOMVERTEX
	IDirect3DDevice9 	SetTexture, 0, ppvIDirect3DTexture9
	IDirect3DDevice9	SetSamplerState,0,D3DSAMP_MAGFILTER,D3DTEXF_ANISOTROPIC
        IDirect3DDevice9 	SetStreamSource,0,pVtxBCylinder, 0, sizeof CUSTOMVERTEX
        IDirect3DDevice9 	DrawPrimitive,D3DPT_TRIANGLELIST,0,40
 	IDirect3DDevice9 	SetStreamSource,0,pVtxBCube, 0, sizeof CUSTOMVERTEX
	IDirect3DDevice9 	DrawPrimitive,D3DPT_TRIANGLELIST,0,12
        IDirect3DDevice9 	EndScene
	IDirect3DDevice9 	Present,0,0,0,0
	ret
Render 	ENDP	
;#####################################################   SETUPMATRICES  ###########################################################
SetupMatrices 			PROC
	INVOKE 			timeGetTime
        cmp    			eax,start_time
        jc     			@F 
        add    			eax,elapse_time
        mov    			start_time,eax         
        push 			36
        push 			pVertices
	push 			3C8E8A72h ; 1 degré radian
	call 			RVTXLY
	push 			36
	push 			pVertices
	push 			3C8E8A72h
	call 			RVTXLX
	push 			36
	push 			pVertices
	push 			3C8E8A72h
	call 			RVTXLZ	
@@:	lea 			eax,matWorld
 	push 			eax
 	call 			MatrixIdentity
    	IDirect3DDevice9 	SetTransform,D3DTS_WORLDMATRIX,ADDR matWorld
.DATA
    	tmpvec31     		D3DVECTOR     <0.0f, 0.0f,-5.0f>
    	tmpvec32     		D3DVECTOR     <0.0f, 0.0f, 0.0f>
    	tmpvec33     		D3DVECTOR     <0.0f, 1.0f, 0.0f>
.CODE
	INVOKE  		MatrixLookAtLH, ADDR matView, ADDR tmpvec31, ADDR tmpvec32, ADDR tmpvec33 
        IDirect3DDevice9 	SetTransform, D3DTS_VIEW, ADDR matView
        INVOKE 			MatrixPerspectiveFovLH, ADDR matProj,3F490FDBh,FovLHParam2,3F800000h,43FA0000h
        IDirect3DDevice9 	SetTransform, D3DTS_PROJECTION, ADDR matProj
        ret
SetupMatrices 			ENDP
;################################################################### SetupLights ###############################################
SetupLights 			PROC
	LOCAL 			light:D3DLIGHT9
	INVOKE 			RtlZeroMemory,ADDR light,sizeof D3DLIGHT9 
    	mov 			light.type1,D3DLIGHT_DIRECTIONAL
    	fld1 
    	fst 			light.Diffuse.r
    	fst 			light.Diffuse.g
    	fstp 			light.Diffuse.b
.DATA
     	vecDir 			D3DVECTOR <0.5,-0.1,1.0>
.CODE
   	lea 			edx,light.Direction
    	lea 			eax,vecDir
     	push 			eax
    	push 			edx
     	call 			Normalize
      	IDirect3DDevice9 	SetLight, 0, ADDR light
	IDirect3DDevice9 	LightEnable, 0, TRUE
	IDirect3DDevice9 	SetRenderState, D3DRS_LIGHTING, TRUE
	ret
SetupLights 			ENDP

;############################################################ CLEANUP #######################################################

Cleanup 			PROC 
        IDirect3DTexture9 	Release
        mov 			ppvIDirect3DTexture9,0
 	IDirect3DVertexBuffer9 	pVtxBCube,Release
        mov 			pVtxBCube,0
	IDirect3DVertexBuffer9 	pVtxBCylinder,Release
        mov 			pVtxBCylinder,0
    	IDirect3DDevice9 	Release
        mov 			ppvIDirect3DDevice9,0
	IDirect3D9 		Release
        mov 			ppvIDirect3D9,0
        ret
Cleanup 			ENDP

;########################################################## InitDlgProc #######################################################

InitDlgProc 			PROC hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM
  	pushad
  	mov  			eax,uMsg
  	cmp  			eax,WM_INITDIALOG
  	je   			WMINIT
  	cmp  			eax,WM_COMMAND
  	je   			WMCMD
  	cmp  			eax,WM_CLOSE
  	je   			WMCLOSE
  	jmp  			DLG
WMINIT: 
.DATA
	item0 			db 'NONE',0
	item1 			db '2X',0
	item2 			db '4X',0
	item3 			db '8X',0
.CODE
        INVOKE 			SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item0
        INVOKE 			SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item1
        INVOKE 			SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item2
        INVOKE 			SendDlgItemMessage,hwnd,300,CB_ADDSTRING,0,addr item3
        INVOKE 			SendDlgItemMessage,hwnd,300,CB_SETCURSEL ,0,0
  	jmp 			DLG
WMCMD: 	mov 			eax,wParam
        and 			eax,0FFFFh
        cmp 			eax,303
        je 			OK 
        cmp 			eax,304
        jne 			DLG
        INVOKE  		ExitProcess,0
OK:     INVOKE  		GetDlgItem,hwnd,301
        INVOKE  		SendMessage, eax, BM_GETCHECK, 0, 0
        mov     		View_Mode,eax
WMCLOSE:INVOKE  		EndDialog, hwnd, 0
DLG:    popad
        xor     		eax, eax
        ret
InitDlgProc 			ENDP

;############################################################### CreateCylinder

CreateCylinder PROC nFace:DWORD,ray:DWORD,h:DWORD
	LOCAL   		nVrtx,pCylind,pVrtx,angC,heightC
	push 			2
        fild 			h
        fidiv 			dword ptr [esp]
        fstp 			heightC
        ;-------------------------------------calcul angle
        push  			180
        fild  			dword ptr [esp]
        fidiv 			nFace
        push  			180
        fidiv 			dword ptr [esp]
        fldpi
        fmulp 			st(1),st
        fstp  			angC 
        add   			esp,12       
	;-------------------------------------cree le buffer
        mov     		eax,nFace
        shl     		eax,1
        add     		eax,2
        mov     		ecx,CUSTOMVERTEX
        mul     		ecx
        INVOKE  		GlobalAlloc,GPTR,eax
        mov     		pVrtx,eax 
        mov     		edi,pVrtx 
	;-------------------------------------remplis le buffer
	sub     		ecx,ecx
        mov     		eax,nFace
        inc     		eax
@@:     push   			ecx
        fld    			angC
        fimul  			dword ptr [esp]
        fsincos
        fst			dword ptr [edi+12]    ;p1.nx
        fst     		dword ptr [edi+48]    ;p2.nx
        fchs
        fimul   		ray
        fst     		dword ptr [edi]       ;p1.x
	fstp    		dword ptr [edi+36]    ;p2.x
        fchs
	fst			dword ptr [edi+20]    ;p1.nz
        fst     		dword ptr [edi+56]    ;p2.nz
        fchs
        fimul   		ray
        fst     		dword ptr [edi+8]     ;p1.z
	fstp    		dword ptr [edi+44]    ;p2.z
        fld     		heightC
        fst     		dword ptr [edi+40]     ;p2.y
        fchs
        fstp    		dword ptr [edi+4]      ;p1.y
        fld1
        fidiv 			nFace
        fimul 			dword ptr [esp]
        fst     		dword ptr [edi+28]  ;p1.tu
        fstp    		dword ptr [edi+64]  ;p2.tu
        push    		3F2AA64Ch
        fld     		dword ptr [esp]
        fstp    		dword ptr [edi+68]    ;p1.tv
        fld1
        fstp    		dword ptr [edi+32]    ;p2.tv
        mov     		dword ptr [edi+24],00FFFFFFh
        mov     		dword ptr [edi+60],00FFFFFFh
        add			edi,72
        add   			esp,8
        inc 			ecx
        dec 			eax
        jnz 			@B  
        mov 			eax,CUSTOMVERTEX*6
	mov 			ecx,nFace
	mul 			ecx
	mov 			nVrtx,eax
	IDirect3DDevice9        CreateVertexBuffer,nVrtx,0, D3DFVF_CUSTOMVERTEX ,D3DPOOL_DEFAULT,addr pVtxBCylinder, NULL
	IDirect3DVertexBuffer9  pVtxBCylinder,Lock1,0,nVrtx,addr pCylind,0
	mov    			eax,nFace
        mov    			esi,pVrtx  
        mov    			edi,pCylind
@@:    	mov    			ecx,CUSTOMVERTEX*4
        rep    			movsb
        sub    			esi,CUSTOMVERTEX*2
        mov    			ecx,CUSTOMVERTEX
        rep    			movsb
        sub    			esi,CUSTOMVERTEX*2
        mov    			ecx,CUSTOMVERTEX
        rep    			movsb
        dec    			eax
        jnz    			@B
        IDirect3DVertexBuffer9  pVtxBCylinder,Unlock
        INVOKE 			GlobalFree,pVrtx
	ret
CreateCylinder  ENDP

include     			loadTexture.asm

END START


 Conclusion

C'est difficile de trouvé des bon exemples directX en assembleur qui fonctionne,
c'est difficile aussi de trouver de la bonne doc à part le sdk en anglais.
cet exemple n'utilise que d3d9.lib, Je suis casi certain que le pro en dx
n'utilisera jamais d3dx3.lib et ses fonctions préfabriquées qui t'imposent les
runtimes mcf qui fais que ton prog pèse un tonne de plus en plus tu dois
faire une mise à jour de uuid.lib pour compiler,le sdk en anglais
propose une fonction D3DX9LoadTextureFromRes inutilisable
c'est pour ça que j'ai fais ma propre fonction qui charge l'image
qui ce trouve dans la section de resource. Je cherche un example en asm
d'un fonction qui charge des mesh (fichier *.x).


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip FLOATTOHEX CODE DE BRUNEWS RETRENSCRIS EN ASM PAR MOI
Source avec Zip Source avec une capture PATCH TOUT EXE 32BITS POUR Y INSERER UNE IMAGE (GIF ,JPG,BMP...
Source avec Zip SPLASH SCREEN
Source avec Zip EXTRACTICONES
Source avec Zip DUMP HEXADECIMAL

 Sources de la même categorie

Source avec Zip Source avec une capture AUTOMATE CELLULAIRE EN ASSEMBLEUR ( JEU DE LA VIE ) par ratala
Source avec Zip Source avec une capture MES MODIFICATIONS SUR LE JEU DE SNAKE DE ASMGGES par ChaperonNoir
Source avec Zip LE JEU DES 24 BOÎTES DE L'HOMME MYSTÉRIEUX [MASM] par grandvizir
Source avec Zip SCREENMATE BOULINATOR par jjeeaanncchhrriisstt
Source avec Zip Source avec une capture SOLITAIRE EN MASM32 POUR WINDOWS par BLUEBIBUBBLE

Commentaires et avis

Commentaire de ToutEnMasm le 18/09/2008 20:32:22

Salut,
L'example meshes (tigre en rotation) sur mon site charge le mesh .x et la texture en ressource.
Pour le mesh
D3DXLoadMeshFromXResource
Pour la texture
D3DXCreateTextureFromResource
L'example est dans cette page
http://pagesperso-orange.fr/luce.yves/DIRECTX9.htm

Commentaire de Forthman le 15/10/2008 14:48:28 10/10

Très sympa comme petite démo :-)
Ca donne envie de se mettre a la programmation Assembleur sous Windows :+)

Commentaire de Adeon le 03/02/2009 11:05:58

Salut,

Je suis toujours impressionné de voir les internautes de asmfr se dépatouiller pour faire leur programmes avec les commandes ASM. Moi jsuis plutôt C++ alors ce type de programme m'impressionne.

Bien joué !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Masm et DIRECTX9 [ par ToutEnMasm ] Tenté par le sujet ?http://perso.orange.fr/luce.yves/DIRECTX9.htmje me suis vu refuser mes sources du début par le serveur,ou alors j'ai fait une faus


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales