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.
bet5/6
Sana18.06.2023
Hajmi366.17 Kb.
#1593815
1   2   3   4   5   6
Bog'liq
Артыкбаев Жалгас курсовая работа


§ 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:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling