Xscreensaver graphics hack

My previous question was a bit off what I want (I didnt really know what I was asking) but the answer lead me to this question:

How do you make a xscreensaver-demo hack - I want to do an 3d animation (I have the facilities to create this) to be displayed.

Thanks.
SnarfAsked:
Who is Participating?
 
tkleinConnect With a Mentor Commented:
u must use the svgalib
in c includes the svga.h
documentation avatable most in usr/doc

its too lang to write an sample in c
but here u have an little sample
in assembly uses the svgalib

sorry 4 my bad english

---- cut here ----
#Linux/SVGAlib #==========================
# gcc -o fire fire.s -lvga
 .globl main
      .type       main,@function
main:
      pushl %ebp
      movl %esp,%ebp
      
      call vga_init            # Init vga
      pushl $5
      call vga_setmode      # set mode to 5 = 320x200x256
      addl $4,%esp
      pushl $0            
      call vga_setpage      # Point to page 0 (There is only 1 page)
      addl $4,%esp
      
      inb $0x60,%al            # Read current value of keyboard
      movb %al,key
      
      movw $0x3c8,%dx
      movw $0,%ax
      outb %al,%dx
      incw %dx
lus:
      outb %al,%dx
      outb %al,%dx
      outb %al,%dx
      incw %ax
      jnz lus
      
      movl graph_mem,%ebx      
      
Mainloop:
      movl $1280,%esi            # mov     si,1280 ;
      movl $0x5d00,%ecx       # mov ch,5dh  ; y-pos, the less the faster demo
      pushl %esi            # push    si
      pushl %ecx            # push    cx
Sloop:
      movb (%ebx,%esi),%al      # lodsb
      incl %esi            #
      
      
        addb (%ebx,%esi),%al      # al,[si]         ; pick color and
      addb 320(%ebx,%esi),%al      # add     al,[si+320]     ; pick one more and
      shrb $2,%al            # shr     al,2                   
      
      movb %al,-960(%ebx,%esi) # mov     [si-960],al     ; put color
      
      loop Sloop

      popl %edi            # pop di
      popl %ecx            # pop cx
      
Randoml:      
      mulw 1(%ebx,%edi)       # mul     word ptr [di+1] ; 'random' routine.
      incw %ax
      movw %ax,(%ebx,%edi)      #stosw
      incl %edi
      incl %edi
      loop Randoml

      inb $0x60,%al
      cmpb key,%al
      jz Mainloop

      pushl $0
      call exit
      addl $4,%esp

      movl %ebp,%esp
      popl %ebp
      ret

..data
key:      
      .byte      0

------ end ----

 have fun !!!
0
All Courses

From novice to tech pro — start learning today.