| |
|
|
Frank Abbing | Mit der relativ unbekannten API LineDDA() lassen sich tolle Effekte erzielen, oder sehr einfach Linienberechnungen durchführen. Hier ein neues XPIA-Beispiel:
KompilierenMarkierenSeparieren {$iq}
Declare x&
Randomize
Cls
If 0
AsmInclude
.data
count dd 0
color1 dd 0
color2 dd 0
.code
LineDDAProc proc ;#################################################################################################
push ebp
mov ebp,esp
push eax
push ebx
push ecx
push edx
push edi
push esi
inc count
mov eax,[ebp+8]
mov ebx,[ebp+12]
mov ecx,[ebp+16]
mov edi,color1
.if count>=8
mov edi,color2
.endif
.if count>=16
mov count,0
.endif
push eax
push ebx
push ecx
invoke SetPixel,ecx,eax,ebx,edi
pop ecx
pop ebx
pop eax
inc eax
push eax
push ebx
push ecx
invoke SetPixel,ecx,eax,ebx,edi
pop ecx
pop ebx
pop eax
inc ebx
push eax
push ebx
push ecx
invoke SetPixel,ecx,eax,ebx,edi
pop ecx
pop ebx
pop eax
pop esi
pop edi
pop edx
pop ecx
pop ebx
pop eax
pop ebp
ret 12
LineDDAProc endp
AsmEnd
AsmStart LinePoints(x&,x&,x&,x&,x&,x&,x&)
m2m color1,para6
m2m color2,para7
invoke LineDDA,para2,para3,para4,para5,addr LineDDAProc,para1
AsmEnd
EndIf
WhileLoop 30
External(xpia$,LinePoints,%HDC,Rnd(640),Rnd(480),Rnd(640),Rnd(480),Rnd($00FFFFFF),Rnd($00FFFFFF))
EndWhile
WaitInput
End
|
|
|
| |
|
|
|
Jörg Sellmeyer | Ich versuch grad mal so ein bischen in ASM reinzukommen. Hier meckert XPSE die Variable xpia$ an. Was soll diese denn beinhalten? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 19.08.2008 ▲ |
|
|
|
|
Frank Abbing | |
|
| |
|
|