problem s kompilaciou vo freepascale

Sekcia: Programovanie 07.03.2007 | 20:30
skywaker   Návštevník
Robim jeden projekt a potrebujem skompilovat graficku kniznicu vo freepascale...

tu je link, vraj to slape aj pod linuxom cez svgalib,...

http://www.cg.tuwien.ac.at/~knapp/graphix_old/gxframe.html

ak by to niekto rozchodil a dal to niekde zbalene funkcne na rapidshare, budem rad.

a este mam fpc 2.0.4 a distro mandrivu
    • Re: problem s kompilaciou vo freepascale 08.03.2007 | 00:52
      Avatar nahnevaný mladý muž gNewSense  Používateľ
      Ach jo.

      Este som to nepozeral, potom mozno pozriem ale zacnime pekne od zaciatku.

      SVGALib sucks. Preco:
      • Ak chces spustit program, musis byt root
      • Nahodou spravis nejaku chybu v programe (delenie nulou, pokus otvorit neexistujuci subor, ...) ktora zasatavi program, tak monitor zostane v SVGA lib mode (ciera obrazovka) a jedine co ju vrati spat je rebot. Ked som pred par rokmi programoval v SVGA lib tak priemer bol cca 30 rebootov za den
      • HW akceleracia mierne problematicka (defakto ziadna)
      • Nie je tam ziadny "vyssi" sposob zpracovania udalosti, cize moze pouzit len "stary dobry" synchronous i/o multiplexing
      • Je to mrtvy kod, nevravim ze sa nevyvija ale existuje 100+1 perspektivnejsich alternativ

      Alternativy:
      • xlib - pre nejake jednoduche veci idealne, ale je to plnohodnotne, zvladnes v tom vsetko
      • SDL - solidna herna kniznica, doporucujem, v FPC to ide velmi dobre
      • OpenGL, Irrlicht, Ogre, ... plnohodnotne 3D enginy
      • Nejaky toolkit pre X11 - ja pouzivam GTK1 alebo GTK2 v lazarusovi (klon delphi pre linux a FPC)
      • FBUI, DirectFB, GGI, ... a ine FrameBuffer veci
      • Re: problem s kompilaciou vo freepascale 08.03.2007 | 16:22
        skywaker   Návštevník
        som rad ze si sa ozval.... ja by som radsej skusil svgalib. ak by si to vedel skompilovat tu kniznicu graphix tak budem rad. potrebujem to na jeden engine ktory je vo freepascale.
        • Re: problem s kompilaciou vo freepascale 08.03.2007 | 16:24
          Avatar nahnevaný mladý muž gNewSense  Používateľ
          aky je to engine, mozno ma port na X11 lebo ta SVGAlib je skutocne to najhorsie co moze existovat. Ale skusim to skompilovat...
        • Re: problem s kompilaciou vo freepascale 09.03.2007 | 00:05
          Avatar nahnevaný mladý muž gNewSense  Používateľ
          V subore gxlinux.ppi chybaju @ pred menami procedur na troch riadkoch, tu je patch:

          $ diff -d gxlinux.ppi.orig gxlinux.ppi
          52,54c52,54
          < CurGraphiX.retrace:=retrace_vgalib;
          < CurGraphiX.retracestart:=retracestart_vgalib;
          < CurGraphiX.retraceend:=retraceend_vgalib;
          ---
          > CurGraphiX.retrace:=@retrace_vgalib;
          > CurGraphiX.retracestart:=@retracestart_vgalib;
          > CurGraphiX.retraceend:=@retraceend_vgalib;

          V subore graphix.pp na riadku 1757 je zle napisane makro, ma tam byt IFDEF, nie IF:

          $ diff -d graphix.pp.orig graphix.pp
          1757c1757
          < {$IF GO32V2}
          ---
          > {$IFDEF GO32V2}

          V subore graphixb.ppi je problem ktory neviem vyriesit, niesom assemblerista, do nejakeho 16-bitoveho registra sa zapisuje 32 bitova hodnota:

          graphixb.ppi(277,19) Error: Asm: [add reg16,reg32] invalid combination of opcode and operands

          Tu je problematicky kod:

          FUNCTION pixofsB8(x,y:longint):longint;assembler;
          ASM
          MOV AX,WORD PTR bytperline
          MUL WORD PTR y
          ADD AX,WORD PTR x <-- riadok 277
          ADD AX,WORD PTR [drawoffset]
          ADC DX,WORD PTR [drawoffset+2]
          CMP DX,curbank
          JNE @pio8_switch
          JMP @pio8_ende
          @pio8_switch:
          PUSH EAX
          MOV curbank,DX
          CALL bankswitch
          POP EAX
          @pio8_ende:
          MOVZX EAX,AX
          END;

          V subore gximg.pp na riadku 1368 sa vola premenna costab ktora (neviem preco) nieje pristupna.

          Atd, atd, atd... Je toho hodne vela, dalej som mal podivny problem ze my nechcelo akceptovat tu freetype kniznicu hoci bola v rovnakom adresari. Skompilovat sa mi to nepodarilo. Inak cele to ma asi 80'000 riadkov kodu a riesia sa tam take blbosti ako format jpeg suboru a podobne haluze, na co ma podla mna byt nejaka kniznica, napr. Imlib a nie to pisat odznova, proste cele je to jeden blby napad ako odstatne cele SVGAlib v non-DOS operacnom systeme...