X olmadan OpenGL render kullanmak istiyorum, google i bulmak: http://dvdhrm.wordpress.com/2012/08/11/kmscon-linux-kmsdrm-based-virtual-console/ mümkün olduğunu söylüyor. DRM ve EGL kullanmalıyım. EGL, opengl bağlamı oluşturabilir, ancak bir NativeWindow gerektirir. DRM muhtemelen bana NativeWindow sağlayacaktır, öyle değil mi? KMS kullanmalı mıyım? Açık kaynak video sürücüsüne sahip olduğumu biliyorum. Tam OpenGL içeriğini istiyorum, ama OpenGL ES (Linux) değil. Belki biri öğretici veya örnek kod biliyor?drm (linux) üzerinden opengl içeriği nasıl oluşturulur
cevap
Evet, kms yığınına (example) ihtiyacın var. Here, linux altında basit bir örnektir, OpenGL es kullanır, Ama OpenGL api ile çalışmasını sağlamak için gereken adım basittir. egl ATTRIBS ise
EGL_OPENGL_BIT
için EGL_RENRERABLE_TYPE
ayarlamak Ve bağlanma egl hangi api söyleyin:
eglBindAPI(EGL_OPENGL_API);
son çekirdek sürücülerini ve mesa-dev
, libdrm-dev
, libgbm-dev
olduğundan emin olun. Bu kod parçaları android üzerinde taşınabilir, varsayılan android grafik yığını susturmak için çok kolay değil.
not: 32bit sürümüyle ilgili sorun yaşadım, ancak hala nedenini bilmiyorum. Bu kütüphaneler aktif olarak geliştirildi, bu yüzden bir hata olmadığından emin değiller.
* note2: GLSL sürümünüze bağlı olarak, şamandıra hassaslığı desteklenir veya desteklenmez.
precision mediump float;
Note3: Eğer /dev/dri/card0
ile permision yetmezliği varsa, onu vermek:
sudo chmod 666 /dev/dri/card0
ya da yürütülebilir için setguid olabilir
sudo adduser $user video
ile video
grubuna geçerli kullanıcı eklemek grup videoyla ayarlandı. (belki de en iyi seçenek)
çalışıyor, teşekkürler! – user2616346
Rica ederim. –
Merhaba, j-p! Ben benzer bir örnek arıyorum, ama android cihazlar için. Anladığım kadarıyla Android'de DRM yığını yok. Sanırım düşük seviyeli grafik api, fb0 ve/dev/ion aygıtları ile çalışmalıdır, ancak ben hiç bir örneğim yok. Herhangi bir notunuz varsa lütfen soruma bakın http://stackoverflow.com/questions/33742552/framebuffer-egl-example-segfault –