forked from KolibriOS/kolibrios
SDK: hardware accelerated drawing (R500 required)
git-svn-id: svn://kolibrios.org@733 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
9a06c513f8
commit
cf23a1ccc7
122
programs/develop/sdk/trunk/HDraw/hdraw.inc
Normal file
122
programs/develop/sdk/trunk/HDraw/hdraw.inc
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
|
||||||
|
SRV_GETVERSION equ 0
|
||||||
|
SOLID_FILL equ 1
|
||||||
|
LINE2P equ 2
|
||||||
|
|
||||||
|
io.handle equ esp
|
||||||
|
io.code equ esp+4
|
||||||
|
io.input equ esp+8
|
||||||
|
io.inp_size equ esp+12
|
||||||
|
io.output equ esp+16
|
||||||
|
io.out_size equ esp+20
|
||||||
|
|
||||||
|
IOSIZE equ 24
|
||||||
|
|
||||||
|
; retval
|
||||||
|
; ebx= service version
|
||||||
|
; eax= error code
|
||||||
|
; 0= no error
|
||||||
|
; -1= common error
|
||||||
|
|
||||||
|
align 4
|
||||||
|
|
||||||
|
init_HDraw:
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 16
|
||||||
|
mov ecx, szHDraw
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov [HDraw], eax
|
||||||
|
test eax, eax
|
||||||
|
jz .fail
|
||||||
|
|
||||||
|
push 0 ;storage for version
|
||||||
|
mov eax, esp
|
||||||
|
xor ebx, ebx
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push ebx ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SRV_GETVERSION ;.code
|
||||||
|
push [HDraw] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, IOSIZE
|
||||||
|
pop ebx ;version
|
||||||
|
ret
|
||||||
|
.fail:
|
||||||
|
or eax, -1
|
||||||
|
ret
|
||||||
|
|
||||||
|
; param
|
||||||
|
; eax= color
|
||||||
|
; ebx= x
|
||||||
|
; ecx= y
|
||||||
|
; edx= w
|
||||||
|
; esi= h
|
||||||
|
|
||||||
|
; retval
|
||||||
|
; eax= error code
|
||||||
|
|
||||||
|
align 4
|
||||||
|
solid_fill:
|
||||||
|
|
||||||
|
push esi
|
||||||
|
push edx
|
||||||
|
push ecx
|
||||||
|
push ebx
|
||||||
|
push eax
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
mov ebx, esp ;FILL
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 5 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SOLID_FILL ;.code
|
||||||
|
push [HDraw] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, (IOSIZE+5*4) ;io_control+FILL
|
||||||
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
line2p:
|
||||||
|
push esi ;y2
|
||||||
|
push edx ;x2
|
||||||
|
push ecx ;y1
|
||||||
|
push ebx ;x1
|
||||||
|
push eax ;color
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
mov ebx, esp ;LINE2P
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 5 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push LINE2P ;.code
|
||||||
|
push [HDraw] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, (IOSIZE+5*4) ;io_control+LINE2P
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
align 4
|
||||||
|
HDraw rd 1
|
||||||
|
|
||||||
|
szHDraw db 'HDRAW',0
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user