Matematika” fakultetı “algoritmlastiriw hám programmalastiriw texnologiyalari” kafedrası
§ StartRegister-maǵlıwmatlardı jazıp alıw ushın birinshi dizimge alıw nomeri
Download 366.17 Kb.
|
Артыкбаев Жалгас курсовая работа
§ StartRegister-maǵlıwmatlardı jazıp alıw ushın birinshi dizimge alıw nomeri; § pConstantData-dizimge alıw ushın maǵlıwmatlardı óz ishine alǵan kórsetkish; § vector4 fCount-maǵlıwmatlardı jaylastırıw ushın kerekli registrlar sanı. d3 dev9 SetVertexShader, pd3 dDevice, c_VS SetVertexShader-vektorlı qatar belgileydi. HRESULT SetVertexShader ( D3 DXHANDLE hParameter, LPDIRECT3 DVERTEXSHADER9 pVertexShader ); PVertexShader tárepinen kórsetiletuǵın Vertex Shader tiykarındaǵı effekt faylında anıqlanǵan hparameter identifikatori tárepinen anıqlanǵan vertikal Shader ob'ektin jumısqa túsiredi d3 dev9 SetPixelShader, pd3 dDevice, c_PS HRESULT SetPixelShader ( D3 DXHANDLE hParameter, LPDIRECT3 DPIXELSHADER9 pPShader ); PPShader tárepinen kórsetilgen piksel Shader tiykarındaǵı effekt faylında identifikaciyalanatuǵın hparameter identifikatori Pixel Shader ob'ektin jumısqa túsiredi d3 dev9 Clear, pd3 dDevice, 0, NULL, D3 DCLEAR_TARGET or D3 DCLEAR_ZBUFFER, Clearcolor, Zvalue, 0 Clear.- hár qıylı reńli tamponlarni tazalaydı HRESULT Clear ( DWORD Count, CONST D3 DRECT* pRects, DWORD Flags, D3 DCOLOR Color, float Z, DWORD Stencil ); Clear o funktsiyası tómendegi parametrlerge iye: Count-counter, tazalaw astında dikdörtgenler sanın kórsetedi. Renderning pútkil maydanı tórtmuyushler qatarından ibarat. Eger siz 0 ma`nisin belgilesangiz, pútkil sirt isletiledi, yaǵnıy. tórtmuyushlerdiń pútkil qatarı yamasa renderning pútkil maydanı ; pRect-d3 drect dúzilisi ushın pointer, tazalanǵan dikdörtgenlere bir qatar suwretlab. Bayraqlar -belgilew, bayraqlar anıqlaw, qaysı ústler tazalanǵan bolıwı kerek kórsetken. Bul parametr tómendegi bayraqlardan hár qanday kombinatsiya bolıwı múmkin: D3 DCLEAR_STENCIL-Stencil parametrindegi baha ushın Stencil buferin tazalaydı ; D3 DCLEAR_TARGET-reń parametrinde sirt buferin rangga aylantıradı. Bul bayraqtı sirt buferin belgili bir reńde tazalaw ushın isletemiz; D3 DCLEAR_ZBUFFER-z parametrindegi bahaǵa tereńliktegi buferdi tazalaydı ; Reńli-reń; z-bul parametr z-tampon ushın bahalardı belgileydi. Baha 0. 0 aralıǵinda bolıwı múmkin-bul tamashagóy ushın bawırlas aralıq hám 1. 0 aralıq. Stencil-Stencil bufer ma`nisi, 0 den 2 n aralıǵinda bolıwı múmkin-1 n bıyt tereńligi Stencil bufer qayda. d3 dev9 SetStreamSource, pd3 dDevice, 0, TeapotP_VB, 0, TeapotPB SetStreamSource-buferdi maǵlıwmatlar aǵımı menen baylanıstıradı. HRESULT SetStrearSourse ( UINT StreamNumber, IDlrect3 DVertexBuffer* pStreamData, UINT OffsetInBytes, UINT Stride) Parametrler: StreamNumber-0-I aralıǵinda maǵlıwmatlar aǵımın belgileydi, pStrearxData IDirect3 DvertexBuffer interfeysine belgi etedi, buferdi arnawlı bir maǵlıwmatlar aǵımına baylanıstıratuǵın vertexlarni usınıw ushın jaratılǵan ; OffsetInBytes-baslanǵısh aǵımnan bul tóbeliklerdiń baslanıwına shekem aralastırıw. Baytda olshenedi. Bul erda siz qaysı joqarı kórsetkishten juwmaq shıǵarılishini kórsetesiz. Eger 0 qoyıw bolsa.juwmaq birinshi tepadan keledi; Stride-bul birdey" baytda qádem", bir tepadan ekinshisine d3 dev9 Present, pd3 dDevice, NULL, NULL, NULL, NULL Present-displeyde buferdiń quramın sáwlelendiredi. HRESULT Present ( CONST RECT* pSourceRect, CCIJST RECT* pDestRect, HKND hDestWindowOverride, CONST RGNCDATA* pDirtyRegion ); Parametrler: pSourceRect-derek maydanı rektus dúzilisi ushın pointer. Eger null ma`nisin isletsangiz, tolıq baslanǵısh maydanı usınıs etiledi; pDestRect-qabıl etiwshiniń sırtınıń rektus dúzilisine belgi etiwshi; hDestWindowOverride-mánzil aynasına a pointer, kimning klient maydanı null ma`nisin belgilew, bul wákillik parametr ushın mánzil retinde qabıl etiledi, sonday etip, biz bul maydan paydalanıw, dep búydew d3 dpresent_parameters quramında § hwnddevicewindow; pDirtyReqion-aqırǵı parametr, aldınǵı DirectX versiyalarınıń " hákis-sadosi" hám endi isletilmaydi. Tek uyqaslıq ushın qaldırilgan, sol sebepli mudamı null ma`nisine ornatıladı. d3 dev9 DrawIndexedPrimitive, pd3 dDevice, D3 DPT_TRIANGLELIST, 0, 0, TeapotP_NV, 0, TeapotP_NF DrawIndexedPrimitive-indeks tamponidan primitiv sızıw. HRESULT DrawIndexedPrimitive ( D3 DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount ); Parametrler: Type-sızılǵan baslanıwiy túri. BaseVertexIndex - bul shaqırıwda isletiletuǵın indekslerge qosılatuǵın tiykarǵı baha. MinIndex-isletiletuǵın indekstiń minimal ma`nisi. NumVertices-bul shaqiriq menen islew beriletuǵın vertices sanı. StartIndex-indekslerdi oqıwdı baslaytuǵın baslanǵısh noqatı retinde belgilenetuǵın indeks bufer elementiniń sanı. PrimitiveCount-sızılǵan primitivlar sanı. Kórsetiw programması Kórsetiw programması DirectX járdeminde sháwgim modeliniń Vertex tamponini janlandırılǵan suwret retinde kórsetedi. Dizim. 586. MMX. XMM. MODEL FLAT, STDCALL OPTION CASEMAP:none INCLUDE \Masm32\Include\windows. inc; strukturalar, turaqlı... INCLUDE \Masm32\Include\kernel32. inc; programma sisteması wazıypaları... INCLUDE \Masm32\Include\user32. inc; interfeys... INCLUDE \Masm32\Include\gdi32. inc; grafik shıǵıw... INCLUDE \masm32\include\winmm. inc; Timegettime ózgesheligi INCLUDELIB \Masm32\Lib\kernel32. lib INCLUDELIB \Masm32\Lib\user32. lib INCLUDELIB \Masm32\Lib\gdi32. lib INCLUDELIB \masm32\lib\winmm. lib INCLUDE \masm32\Dxsdk90\Include\2005_jun\d3 d9_all. inc INCLUDELIB \masm32\Dxsdk90\lib\2005_jun\d3 d9. lib INCLUDELIB \masm32\Dxsdk90\lib\2005_jun\d3 dx9. lib; jalǵanıw d3 dx wazıypaları (dinamikalıq kitapxana ) ; Prototiplar :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Init_Direct3 D PROTO ; bul funktsiyalardıń teksti tómende keltirilgen Destroy_Direct3 D PROTO Set_Render_Parameters PROTO Init_Scene PROTO Render_Scene PROTO ;====================================================== ; Tiykarǵı bólim ;======================================================. DATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: szClassName db " MyClass", 0 szAppName db " 8-78-3 Baranov I. V. ", 0 ;WNDCLASSEX -------------------------------------------- cbSize dd 12*4 style dd CS_HREDRAW+CS_VREDRAW+20 h lpfnWndProc dd OFFSET WndProc cbClsExtra dd 0 cbWndExtra dd 0 hInstance dd 400000 h hIcon dd 0 hCursor dd 0 hbrBackground dd BLACK_PEN lpszMenuName dd 0 lpszClassName dd OFFSET szClassName hIconSm dd 0 ; Qáte xabarları ---------------------------------- bul maqalada basqa til bólimlerine belgit joq. bul maqalada basqa til bólimlerine belgit joq.. DATA? ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: msg MSG <> hwnd HWND? clientwindow RECT <>. CONST ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: WIN_X EQU 640 ; gorizontal ayna kólemi WIN_Y EQU 480; ayna kólemi vertikal. CODE ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Start: invoke GetModuleHandle, NULL mov hInstance, eax invoke LoadCursor, NULL, IDC_ARROW mov hCursor, eax invoke RegisterClassEx, ADDR cbSize invoke GetSystemMetrics, SM_CXSCREEN push eax invoke GetSystemMetrics, SM_CYSCREEN sub eax, WIN_Y shr eax, 1 pop ebx sub ebx, WIN_X shr ebx, 1 invoke CreateWindowEx, NULL, ADDR szClassName, ADDR szAppName, \ WS_SYSMENU or WS_VISIBLE, \ ebx, eax, WIN_X, WIN_Y, NULL, NULL, hInstance, NULL mov hwnd, eax invoke GetClientRect, eax, ADDR clientwindow Invoke Init_Direct3 D ; apparat jaratıw msg_loop: invoke PeekMessageA, ADDR msg, 0, 0, 0, PM_REMOVE ; test eax, eax ; jne xabar ; eger áynekte xabarlar bolmasa... ; invoke Render_Scene ;... keyin saqna payda boladı jmp msg_loop ; ; message:; mov eax, DWORD PTR msg. message ; cmp eax, WM_QUIT ; je end_loop ; ; invoke TranslateMessage, ADDR msg ; invoke DispatchMessage, ADDR msg ; jmp msg_loop end_loop: mov eax, msg. wParam; eger xabarlardı qayta islew aylanıwı toqtatilsa, ; programmanıń shıǵıw kodı wParam maydanına ótkeriledi Shıǵıw :; MSG xabarları. invoke ExitProcess, eax ret ;====================================================== WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM ;====================================================== cmp uMsg, WM_CREATE; bul xabar jaratılǵanda aynaǵa jiberiledi je wmCreate cmp uMsg, WM_DESTROY; bul xabar joq etiliwi kerek bolǵan aynaǵa jiberiledi. je wmDestroy cmp uMsg, WM_KEYDOWN; klaviaturada tuymeni basqanıńızda bul xabar aynaǵa jiberiledi. je wmKeydown Invoke DefWindowProc, hWnd, uMsg, wParam, lParam; eger qabıl etilgen xabardı qayta islewdi qálemasak ret; biz alǵan parametrler menen DefWindowProc qońıraw etiwimiz kerek. ; Bul API ózgesheligi bizni qızıqtirayotgan waqıyalardı kórip shıǵadı. wmDestroy:;------------------------------------------ invoke Destroy_Direct3 D invoke PostQuitMessage, NULL qor eax, eax ret wmCreate:;------------------------------------------ qor eax, eax ret wmKeydown:;------------------------------------------ mov eax, wParam cmp eax, VK_ESCAPE jne noExit invoke SendMessage, hwnd, WM_CLOSE, NULL, NULL noExit: qor eax, eax ret WndProc endp ;====================================================== ; Direct3 D menen islew baslanadı ;====================================================== Init_Direct3 D proc; wm_create xabarında Direct3 DDevice jaratıw múmkin emes!. DATA ;D3 DPRESENT_PARAMETERS ------------------------------------------ BackBufferWidth dd 640 ; BackBuffer keńligi BackBufferHeight dd 480; arqa diywal bálentligi BackBufferFormat dd D3 DFMT_X8 R8 G8 B8; isletiletuǵın sirt formatı BackBufferCount dd 3 ; back bufer sanı. MultiSampleType dd 0 ; Multisampling súwret dárejesi. (ádetde 2-uh hám odan joqarı ) MultiSampleQuality dd 0 ; SwapEffect dd D3 DSWAPEFFECT_FLIP ; E mov eax, DWORD PTR [esp] invoke MessageBox, hwnd, eax, ADDR szAppName, MB_ICONERROR pop eax invoke Destroy_Direct3D jmp Exit ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: end Start Atqarıw nátiyjesi: Download 366.17 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling