منع opengl.framework من التحميل في تطبيق الكاكاو
-
27-09-2019 - |
سؤال
روابط التطبيق الخاصة بي مقابل هذه الأطر:
Cocoa.Framework
AppKit.Framework
CoreData.Framework
Foundation.Framework
لاحظ أن OpenGL.Framework ليس مرتبط. ومع ذلك ، بعد تعيين dyld_print_libraries = 1 ، لاحظت ذلك:
...
DYLD: محمّل:/نظام/مكتبة/أطر/OpenGL.Framework/إصدارات/أ/OpenGL
DYLD: محمّل:/نظام/مكتبة/أطر/OpenGL.Framework/إصدارات/أ/المكتبات/...
DYLD: محمّل:/نظام/مكتبة/أطر/OpenGL.Framework/إصدارات/أ/المكتبات/...
DYLD: محمّل:/نظام/مكتبة/أطر/OpenGL.Framework/إصدارات/أ/المكتبات/...
DYLD: محمّل:/نظام/مكتبة/أطر/OpenGL.Framework/إصدارات/أ/المكتبات/...
DYLD: محمّل:/نظام/مكتبة/أطر/OpenGL.Framework/إصدارات/أ/المكتبات/...
...
هذه مشكلة كبيرة لأنه ، كما هو مذكور في [قائمة الكاكاو ديف] [1] ، يتسبب إطار OpenGL في بطاقة رسومات NVIDIA لتشغيلها للحصول على أحدث محترفين MacBook.
كما هو متوقع ، يتسبب طلبي في تشغيل بطاقة NVIDIA. ما هو أسوأ ، هو أن الإطار لا يفرغ عند إغلاق النافذة.
العناصر الرسومية غير القياسية الوحيدة التي لديّ هي بعض رسومات NSBezierPath المخصصة والظل.
في الأساس ، عندما يبدأ تطبيقي الرسومات المتكاملة حتى يتم عرض النافذة ، ثم يتم تشغيل الرسومات المنفصلة على و تبقى على بغض النظر عن حالة النافذة.
إجابه
للحصول على NSView مع nsbezierpaths أو خلفيات واضحة ، تأكد من تعيين: [myview setWantslayer: no
المحلول
أود أن أقول إنك تستخدم ميزة تتطلب الكاكاو لتحميل OpenGL. مثل coreanimation ، أو أي أشياء واجهة المستخدم الفاخرة. هل تعرض مقاطع فيديو في تطبيقك؟ قد يكون السبب.
هل يحدث نفس الشيء في مشروع مثال جديد تمامًا يرتبط بنفس الأطر؟
نصائح أخرى
أيضًا - يبدو أن Apple أضافت دعمًا للسماح لتطبيقك بمحاولة التشغيل على بطاقة الرسومات المتكاملة.
سوف تساعد NSSupportSautomaticGraphicsswitching إلى True لعام 2011 (وبعد ذلك؟) MacBooks.
http://developer.apple.com/library/mac/#qa/qa1734/_index.html٪23//apple_ref/doc/uid/dts40010791
يجب عليك اختبار تطبيقك مع هذا الإعداد.