Texture avec directx9

Soyez le premier à donner votre avis sur cette source.

Vue 7 113 fois - Téléchargée 1 038 fois

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 / Exemple :


.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).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

ToutEnMasm
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
26 mars 2016
1 -
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
Forthman
Messages postés
23
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
9 janvier 2014
-
Très sympa comme petite démo :-)
Ca donne envie de se mettre a la programmation Assembleur sous Windows :+)
cs_Adeon
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
2 -
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é !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.