Thread overview
SDL2 ve derelict-sdl2
Feb 13, 2020
cos00kun
Feb 13, 2020
cos00kun
Feb 13, 2020
cos00kun
Feb 17, 2020
cos00kun
February 13, 2020

SDL2 ve derelict-sdl2 arasındaki fark nedir ?
açıkçası derelict ile birçok kütüphane bu şekilde derelict binding olarak eklenmiş tam olarak farklarını merak ediyorum.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 13, 2020

aslında binding olduğunu anladım ancak bu seferde başka bir soru peşimi bırakmadı! örneğin ;
dlang sitesinde package bölümüne baktığımda
d-vulkan
derelict-vulkan
gibi aynı konuyu içeren iki binding ile karşılaşıyorum. Bu durumda ikisi de aynı işi mi görür bilemedim.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 13, 2020

ayrıca başka bir soru daha geldi aklıma; bindingleriyle orjinal kütüphaneleri arasında sözdizimi farkı var mıdır?
örneğin openGL ile bunun bindingi arasında C++ ile yazılmışşöyle bir kod parçasını ele alırsak;

void display(void){
glClear(GL_COLOR_BUFFER_BIT); // Renk bufferını temizle
glColor3f(1.0, 0.0, 0.0); //Renk değeri ata
glBegin(GL_POLYGON); //Poligon çizmeye başla
glVertex2f(-0.5, -0.5); //Köşe değerleri
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd(); //Poligon çizimi bitir
glFlush(); //Çizim komutlarını çalıştır
}

D dili için bu bölüm içindeki fonksiyonlar/işlevler v.s.. aynen kullanılabiliyor mu ? elbette D söz dizimi kurallarına göre.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 13, 2020

İkisini de kullanmadım ama sdl2, D'den bağımsız bir kütüphane. derelict-sdl2 ise o kütüphanenin D programlarından çağrılabilmesini sağlayan D ilintisi (binding).

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 13, 2020

C ve C++ kütüphanelerinin arayüzleri (işlevleri, türleri, vs.) başlık dosyalarında (header files) tanımlanır. D başlık dosyası kullanmadığından, o arayüz ögelerinin D tarafında bildirilmeleri gerekir. Bir kütüphane ile ilgili böyle bildirimlerin bileşimine o kütüphanenin ilintisi diyoruz.

İlinti yazmak genelde çok basit bir iş ama bazı C makroları vs. karmaşıklık yaratabiliyor. Örneğin, ben basit bir programımda magickwand'ın ilintilerini kendim şöyle yazmışım:

https://github.com/acehreli/alibum/blob/master/magickwand.d

Programı kütüphaneyle bağlama (link) için ayrıca bir şey gerekmiyor çünkü D, C kütüphanelerini doğrudan kullanır çünkü D'nin struct'ları ve işlev parametreleri C ABI'ındadır.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 17, 2020

Alıntı (acehreli:1581631054):

>

C ve C++ kütüphanelerinin arayüzleri (işlevleri, türleri, vs.) başlık dosyalarında (header files) tanımlanır. D başlık dosyası kullanmadığından, o arayüz ögelerinin D tarafında bildirilmeleri gerekir. Bir kütüphane ile ilgili böyle bildirimlerin bileşimine o kütüphanenin ilintisi diyoruz.

İlinti yazmak genelde çok basit bir iş ama bazı C makroları vs. karmaşıklık yaratabiliyor. Örneğin, ben basit bir programımda magickwand'ın ilintilerini kendim şöyle yazmışım:

https://github.com/acehreli/alibum/blob/master/magickwand.d

Programı kütüphaneyle bağlama (link) için ayrıca bir şey gerekmiyor çünkü D, C kütüphanelerini doğrudan kullanır çünkü D'nin struct'ları ve işlev parametreleri C ABI'ındadır.

Ali

Peki Ali Hocam magickwand.d ilintisinin ilham kaynağı magickwand.h dosyasını da paylaşabilir misiniz?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 17, 2020

"magickwand.h source code" diye aratınca bulundu: :)

https://www.imagemagick.org/api/MagickWand/MagickWand_8h_source.html

Ama benim ilinti tam o dosyayla ilgili değil, o kütüphanede benim ihtiyaç duyduğum bütün işlevlerle ilgili. Örneğin, FilterTypes başka bir başlık dosyasında tanımlı olsa gerek; ben tek .d dosyasına yazmışım.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]