1 Ocak 1991 Tarihli Commodore Gazetesi Sayfa 41

1 Ocak 1991 tarihli Commodore Gazetesi Sayfa 41
Metin içeriği (otomatik olarak oluşturulmuştur)

şekli, herhangi bir grafik işlemini sa- dece bir ekrana yaptırmak, dolayısıy- la sonradan kolayca silinmesini sağ- lamaktır. Bazı programlar belleğe öylesine muühtaçtır ki, tampon ekranını prog- ramı yerleştirmek için kullanır. Bu durumda menüleri nasıl kullanacak- lar acaba? sorusunu duyar gibi olu- yorum, Programda hiç menü kullan- mamak bir çözüm tabi ki. Fakat GE- OS'u tasarlayanlar bunu da düşün- müşler ve “RecoverVector' adlı bir vektör tanımlamışlar ($84B1-$84B2 adresleri). Bu vektör normalde Reco- verRectangle (Bu rutin ne yazık ki ge- lecek sayıya kaldı!) rutinin adresini saklar ve GEOS bir menü veya her- hangi bir alanı tampon ekrandan kopyalamak istediği zaman Recover Rectangle rutinini çağıracakmış gibi hazırlak yapar ve Recover Vector vek- törünün sakladığı adrese bir sıçrama yapar. Eğer tampon ekranı ek RAM olarak kullanmayı düşünüyorsanız, yapmanız gereken şey, dikdörtgen alanların içeriğini saklayacak bir ru- tin yazmak ve Recorver Vector vektö- rünün adresini burayı gösterecek şe- kilde ayarlamaktır.Tabi daha basit bir yol da var. Eğer her çağrıldığın- da ekranı yeniden çizecek bir rutin yazarsanız, ekranın belli bir bölgesi- nin saklanması ihtiyacı ortadan kal- kar. Böylece hızdan kaybedersiniz ama RAM'dan oldukça tasarruf edersiniz. Bu kadar teorik bilgiden sonra pra- tik rutinlere geçme zamanı geldi sa- nırım. İşte en temel rutin olan çizgi çizme rutini ile başlayalım. Çizgiler, yatay-dikey çizgiler ve çapraz çigiler olarak iki gruba ayrılırlar GEOS'un gözünde. Yatay ve dikey çizgileri kul- lanırken bir desen baytı kullanabilir ve bu sayede değişik şekillerde nok- talanmış çizgiler elde edebilirsiniz. Buna karşılık çapraz çizgiler sadece tamamen dolu olarak çizilebilirler. Yatay ve dikey çizgilerde kullani- lacak olan desen baytı sağa veya so- la kaydırılmadan olduğu gibi çizilir ve gereken yerleri silinir. Bu sayede alt alta gelen çizgilerin boyları farklı bile olsa, desenlerin tüm baytlarının 1 ve O'ları alt alta gelir. GEOS Kernal'ı, desen baytının 0. biti grafik ekranındaki 0. bite denk gelecek şekilde ayarlar ve çizginin doğru noktalarda başlayıp bitmesi için baş ve sonda bulunan fazla bit- leri siler. Bu konuda tam olarak bir fikre sahip olmak için yukarıdaki tabloyu inceleyin. Dikey doğrular da benzer şekilde çizilir fakat desen biti 90 derece çev- a rilir. Dikey doğruların tek problemi yatay doğrulardan daha yavaş çalış- masıdır. Eğer grafik ekraninda bayt dizilimini incelerseniz hemen sebebi- ni anlarsınız. Yatay doğru çiziyorsa- nız, 8 noka için 1 bayta değer verme- niz gerekir. Oysa dikey doğrularda her nokta için 1 bayt harcamanız ge- rekir. Bunun yanında sadece bir biti değiştirmek bit değerini o baytla *OR'lamanız gerekir. Bu yüzden di- key doğrular yataylarına oranla en az sekiz kat yavaş çalışırlar. Çapraz çizgiler ise büyük problem- ler yaratacağı için tamamen içi dolu olarak çizilirler. Bu problemlerden en büyüğü çözünürlüğün yeterli olma- masından dolayı çapraz görüntünün bir miktar bozulmasıdır. Zaten tam düzgün olmayan çizgiye bir de desen eklemeye kalkınca iyice dağıldığı için GEOS'u yazanlar çareyi çapraz çiz- gilere desen olanağı tanımamakta bulmuşlar. Şimdi de doğru çizmekle ilgili ru- tinleri inceleyelim: b OD LAİ L L EELEELRİ DCECEK ON Desen byte e Yazılmayan bits ge) L l I Byte sınırları 45

Bu sayıdan diğer sayfalar: