رسم سريع
تحتاج هذه المقالة إلى مصادر إضافية للتحقق . ( سبتمبر 2014 ) |
| macOS graphics model |
|---|
| Rendering |
| Compositing |
كانت QuickDraw مكتبة الرسومات ثنائية الأبعاد وواجهة برمجة التطبيقات المرتبطة بها (API) والتي تعد جزءًا أساسيًا من نظام التشغيل Mac OS الكلاسيكي . وقد كتبها في البداية بيل أتكينسون وآندي هيرتزفيلد . [1] لا يزال QuickDraw موجودًا كجزء من مكتبات macOS ، ولكن تم استبداله إلى حد كبير بنظام الرسومات Quartz الأكثر حداثة. في Mac OS X Tiger ، تم إيقاف QuickDraw رسميًا . في Mac OS X Leopard، لا يمكن للتطبيقات التي تستخدم QuickDraw الاستفادة من دعم 64 بت المضاف. في OS X Mountain Lion ، تمت إزالة دعم رأس QuickDraw من نظام التشغيل. لا تزال التطبيقات التي تستخدم QuickDraw تعمل على OS X Mountain Lion إلى macOS High Sierra؛ ومع ذلك، لا تحتوي الإصدارات الحالية من Xcode وmacOS SDK على ملفات الرأس لتجميع مثل هذه البرامج.
مبادئ برنامج QuickDraw
كان QuickDraw مستمدًا من برنامج LisaGraf من إنتاج شركة Apple Lisa في أوائل الثمانينيات، وصُمم ليتناسب جيدًا مع واجهات Pascal وبيئات التطوير في أنظمة Apple المبكرة . بالإضافة إلى ذلك، كان QuickDraw نظامًا للرسومات النقطية ، والذي يحدد البكسل كوحدة أساسية للمعلومات الرسومية. وهذا على النقيض من أنظمة الرسوميات المتجهة ، حيث يتم تعريف العناصر الرسومية البدائية بمصطلحات رياضية وتحويلها إلى رسوم نقطية حسب متطلبات دقة العرض. ومع ذلك، يتطلب نظام الرسوم النقطية طاقة معالجة أقل بكثير، وكان النموذج السائد في الوقت الذي تم فيه تطوير QuickDraw.
لقد حدد برنامج QuickDraw بنية بيانات رئيسية، وهي منفذ الرسومات أو GrafPort. كانت هذه منطقة رسم منطقية يمكن رسم الرسومات فيها. كان "الكائن" الأكثر وضوحًا على الشاشة والمطابق لمنفذ GrafPort هو النافذة ، ولكن يمكن أن يكون عرض سطح المكتب بالكامل عبارة عن منفذ GrafPort، كما يمكن أن توجد منافذ خارج الشاشة أيضًا.
لقد حدد GrafPort نظام إحداثيات . في QuickDraw، كان لهذا النظام دقة 16 بت ، مما يعطي 65536 موقعًا رأسيًا وأفقيًا فريدًا. يتم ترقيم هذه المواقع من -32767 في أقصى اليسار (أو الأعلى)، إلى +32767 في أقصى اليمين (أو الأسفل). عادةً ما يتم إعداد النافذة بحيث تكون الزاوية العلوية اليسرى لمنطقة المحتوى الخاصة بها موجودة عند 0,0 في GrafPort المرتبط. لا تتضمن منطقة محتوى النافذة إطار النافذة أو الظل المنسدل أو شريط العنوان (إن وجد).
تشير إحداثيات QuickDraw إلى الخطوط الرفيعة للغاية بين مواقع وحدات البكسل . يتم رسم وحدة بكسل فعلية في المساحة الموجودة على اليمين مباشرة وأسفل الإحداثيات. وهذا يجعل من السهل على المبرمجين تجنب الخلل الرسومي الناجم عن أخطاء الانحراف بمقدار واحد .
على جهاز Macintosh، كانت البكسلات مربعة، وكان لجهاز GrafPort دقة افتراضية تبلغ 72 بكسل لكل بوصة، تم اختيارها لتتوافق مع الاتفاقيات التي أرستها صناعة الطباعة والتي تتضمن 72 نقطة لكل بوصة.
يحتوي QuickDraw أيضًا على عدد من وظائف القياس والتعيين.
احتفظت QuickDraw بعدد من المتغيرات العالمية لكل عملية، وكان أهمها المنفذ الحالي. وقد أدى هذا في الأصل إلى تبسيط واجهة برمجة التطبيقات، حيث كانت جميع العمليات تتعلق "بالمنفذ الحالي"، ولكن مع تطور نظام التشغيل، أدى هذا الاستخدام للحالة العالمية أيضًا إلى جعل QuickDraw أكثر صعوبة في التكامل مع أساليب التصميم الحديثة مثل تعدد الخيوط وتعدد المهام الاستباقي . لمعالجة هذه المشكلات، أضافت واجهة برمجة تطبيقات Carbon (جسر بين نظامي التشغيل Mac OS 9 وMac OS X) معلمات إضافية لبعض الروتينات، مما يسمح بالتخزين (الغامض) لمعلومات الخيوط وبنية حدث جديدة (غير مستقصاة).
أساسيات الرسومات
يتم رسم كل ما يظهر على شاشة Mac OS الكلاسيكية بواسطة QuickDraw، ولكن المكتبة نفسها منخفضة المستوى إلى حد كبير. الكائنات البدائية التي يمكنها رسمها هي:
- خطوط
- المستطيلات
- مستطيلات ذات زوايا مستديرة (وبيضاوية)
- الأشكال البيضاوية (بما في ذلك الدوائر والقطع الناقص)
- الأقواس (والاسافين)، سواء كانت دائرية أو بيضاوية
- المضلعات (أشكال مغلقة عشوائية مبنية من قائمة من النقاط المتصلة بخطوط)
- المناطق (مجموعات عشوائية من وحدات البكسل - انظر أدناه)
- خرائط نقطية وخرائط نقطية
- نص
يمكن رسم كل من هذه الكائنات (باستثناء النص) باستخدام "قلم"، والذي يمكن أن يكون له أي أبعاد مستطيلة أو نمط أو لون. لاحظ أنه نظرًا لأن القلم مستطيل ومحاذٍ للمحور، فإن الخطوط القطرية ستكون أكثر سمكًا من الخطوط الأفقية أو الرأسية. يمكن رسم الأشكال مملوءة أو مؤطرة، باستخدام أي نمط أو لون. يشكل القوس المملوء إسفينًا. يمكن رسم النص بأي خط مثبت، في مجموعة متنوعة من الاختلافات الأسلوبية، وبأي حجم ولون. اعتمادًا على كيفية تخزين الخط المحدد، يمكن تغيير حجم النص بطرق متنوعة - ستتغير خطوط TrueType بسلاسة إلى أي حجم، في حين لا تتغير خطوط bitmap عادةً بشكل جيد.
كانت إحدى الميزات المهمة لبرنامج QuickDraw هي دعم أوضاع النقل ، والتي تحكم كيفية ارتباط قيمة البكسل الوجهة بقيمتها السابقة ولون الكائن الذي يتم رسمه.
ترتبط مجموعة السمات الخاصة بالقلم والرسم النصي بـ GrafPort.
المناطق هي بنية بيانات رئيسية في QuickDraw. وهي تحدد مجموعة عشوائية من وحدات البكسل، مثل خريطة البتات، ولكن في شكل مضغوط يمكن معالجته بسرعة كبيرة بطرق معقدة. يمكن دمج المناطق (الاتحاد)، وطرحها (الفرق)، وإجراء عملية XOR لتكوين مناطق أخرى. ويمكن استخدامها داخل GrafPort للقص ، أو رسمها مملوءة أو مؤطرة مثل أي شكل آخر. يمكن دمج سلسلة من الأشكال المؤطرة والخطوط المتصلة في منطقة واحدة. لا يلزم أن تتكون المنطقة من مجموعة متجاورة من وحدات البكسل - فالمناطق المنفصلة ممكنة ومشتركة. على الرغم من أن المناطق قد تسمح بمعالجات رسومية قوية إلا أنها محدودة بالتطبيق الحالي الذي يقيد حجم تخزين بيانات المنطقة الأقصى بقيمة ستة عشر بت وبالتالي فهي غير عملية كأداة تكوين رسم عامة والاستخدام العملي بدقة عالية مقيد أيضًا. تدعم المناطق بقية QuickDraw، مما يسمح بالقص إلى أشكال عشوائية، وهو أمر ضروري لتنفيذ نوافذ متعددة متداخلة. تم اختراع Regions بواسطة بيل أتكينسون، وتم تسجيل براءة اختراعها كاختراع منفصل بواسطة شركة Apple.[1]
يتم تحديد المنطقة (بعد إنشائها الأولي) من خلال فتح المنطقة ورسم أشكال QuickDraw المختلفة وإغلاق المنطقة. تقوم الروتينات المخفية بإنشاء المنطقة أثناء تنفيذ أوامر QuickDraw. يمكن أيضًا تحويل الخرائط النقطية إلى مناطق، ويمكن إنشاء خرائط نقطية من المناطق عن طريق "طلاء" المنطقة أو "ملءها" في منفذ رسومي.
إن البنية الداخلية للمنطقة، بخلاف طول التخزين والمستطيل المحيط بها، غير شفافة - لا توجد مستندات منشورة من قبل شركة Apple، على الرغم من أن الآلية موضحة في براءة الاختراع. يتم تنفيذ المناطق باستخدام الضغط الرأسي والأفقي . يتم تخزين المنطقة كسلسلة من خطوط المسح الأفقي (" النقاط ")، كل منها يحتوي على إحداثيات رأسية تليها قائمة من إحداثيات الانعكاس الأفقي. يمكن اعتبار كل نقطة انعكاس بمثابة تبديل للتضمين في المنطقة لجميع النقاط بعدها: النقطة الأولى تقوم بتشغيل المنطقة، والثانية تقوم بإيقاف تشغيلها، وهكذا. يتم تحقيق المزيد من الضغط عن طريق تخزين كل سطر بشكل تفاضلي: يحتوي كل سطر فقط على الاختلافات عن السطر السابق بدلاً من مجموعة كاملة من نقاط الانعكاس. أخيرًا، يتم ترميز خطوط المسح المجاورة المتطابقة بكفاءة عن طريق تخطيها ببساطة. بهذه الطريقة، يتم ترميز المنطقة المستخدمة بشكل شائع، المستطيل ذو الزاوية المستديرة، بكفاءة، ويمكن إجراء عمليات معقدة مثل تكوين المنطقة وقص الصورة دون الحاجة إلى دورات معالج مكثفة أو كميات كبيرة من الذاكرة. (كانت الأنظمة الأصلية التي تنفذ كود QuickDraw تستخدم معالجات تعمل بمعدلات ساعة تبلغ 8 ميغا هرتز وكانت الأنظمة تحتوي على 128 كيلوبايت فقط من الذاكرة القابلة للكتابة.)
نظرًا لأن المناطق مرتبطة باتجاه معين، فإن تدوير المنطقة بزاوية تسعين درجة يتطلب هندسة عكسية مفصلة للهيكل وترميزًا مكثفًا. إن التدوير العام غير عملي عند مقارنته بتدوير وصف حدود المصدر الأصلي وإنشاء منطقة جديدة ببساطة. ومع ذلك، تتضمن واجهة برمجة التطبيقات روتينات التحويل من وإلى BitMaps. (يمكن أيضًا تدوير BitMaps باستخدام طرق معروفة جيدًا، ولكن بدرجات متفاوتة من تدهور الصورة اعتمادًا على الزاوية المختارة ودورات التخزين والمعالج المتاحة للعملية وتعقيد الخوارزمية.)
قامت شركة Apple مؤخرًا (في Carbon API ) بتعريف المناطق كبنية غير شفافة ضمن بعض خيارات تجميع البرنامج.
عمليات ذات مستوى أعلى
يمكن تسجيل أي سلسلة من استدعاءات الرسومات إلى QuickDraw في بنية تسمى صورة . ويمكن بعد ذلك حفظها في الذاكرة و"تشغيلها" في أي وقت، لإعادة إنتاج تسلسل الرسومات. وفي وقت التشغيل، يمكن وضع الصورة عند إحداثيات جديدة أو تغيير حجمها دون فقدان الدقة التي عادة ما نصادفها في تغيير حجم الخريطة النقطية. ويمكن حفظ الصورة على القرص بالشكل الذي تحدد به تنسيق Apple PICT .
يمكن نسخ خريطة بتات (أو خريطة بيكس، عند الإشارة إلى الصور الملونة) بالكامل من منفذ غراف إلى آخر، مع التدرج والقص. تُعرف هذه العملية باسم blitting ، أو CopyBits ، بعد اسم الوظيفة، وهي الأساس لمعظم الرسوم المتحركة وتأثيرات الرسوم المتحركة على أجهزة ماك.
يوفر QuickDraw وظيفة blitting مماثلة تم تصميمها لتنفيذ التمرير داخل GrafPort - يمكن نقل الصورة في المنفذ إلى موقع جديد دون تغيير الحجم (ولكن مع القص إذا رغبت في ذلك).
يتم توجيه كل عملية بدائية للرسومات من خلال StdProcs، وهي سلسلة من مؤشرات الوظائف المخزنة في GrafPort. يسمح هذا التعدد الشكلي المحدود بتجاوز العمليات الفردية أو استبدالها بوظائف مخصصة، مما يسمح لبرامج تشغيل الطابعة باعتراض أوامر الرسومات وترجمتها إلى عمليات طابعة مناسبة. بهذه الطريقة، يمكن عرض QuickDraw باستخدام PostScript ، وهي حقيقة مكنت Macintosh من اختراع النشر المكتبي عمليًا .
على غرار الفئة الفرعية ، بدأ هيكل بيانات النافذة بمنفذ GrafPort المرتبط، مما جعل النوافذ قابلة للتبادل مع أي منفذ GrafPort. وعلى الرغم من أن هذا الأمر ملائم، إلا أنه جعل من السهل كتابة تعليمات برمجية خاطئة تمرر منفذ رسومات خارج الشاشة إلى واجهة برمجة التطبيقات التي تتوقع نافذة كاملة.
تاريخ
بدأت QuickDraw حياتها باسم Lisa Graf كجزء من تطوير Apple Lisa . بالنسبة إلى Macintosh، تم تبسيطها في البداية، ولكن تم توسيعها لاحقًا. في الأصل، كانت QuickDraw GrafPorts تدعم عمق بت يبلغ 1 فقط، أي بت واحد لكل بكسل، أو بالأبيض والأسود. كان هذا مناسبًا للشاشة المدمجة في Macintosh المبكرة، بحجمها الثابت 512 × 342 بكسل. تم دعم الألوان المحدودة باستخدام نموذج مستوٍ خام ، مما يسمح لـ QuickDraw بتشغيل بعض أنواع الطابعات النقطية التي تستخدم شرائط متعددة الألوان، ولكن عدد قليل جدًا من التطبيقات تدعم هذه الميزة.
في عام 1987، تم إطلاق Macintosh II ، والذي تم تصميمه بتصميم تقليدي أكثر بثلاثة صناديق - الكمبيوتر والشاشة ولوحة المفاتيح كلها منفصلة. نظرًا لأن الشاشة كانت منفصلة وأكبر من جهاز Mac الأصلي، كان لابد من تغيير بنية الفيديو بالضرورة. بالإضافة إلى ذلك، نقل Mac II جهاز Macintosh من الأبيض والأسود إلى الألوان الكاملة. قررت Apple أيضًا في هذا الوقت دعم سطح مكتب سلس يمتد عبر شاشات متعددة، وهي الأولى في الصناعة. وبالتالي تم إنشاء Color QuickDraw، وهو امتداد مهم لبرنامج QuickDraw الأصلي. في هذا الوقت، كان بيل أتكينسون مشغولاً بـ HyperCard ، لذلك تم إنجاز عمل Color QuickDraw بواسطة Ernie Beernink (الذي كان لا يزال يبلغ من العمر 23 عامًا): [2] كما أشاد Dave Allen من Apple بـ Dave Fung. [3] كانت البنية الأصلية تفتقر إلى الكثير من التسهيلات للتوسعة، ولكن باستخدام سلسلة من الاختراقات ، تمكن مطورو Apple من جعل إضافة اللون وبنية الفيديو الجديدة سلسة تقريبًا لكل من المطورين والمستخدمين النهائيين.
لقد قدم برنامج Color QuickDraw هياكل بيانات جديدة، بما في ذلك GDevices لتمثيل كل بطاقة فيديو/شاشة متصلة، وهيكل GrafPort ملون جديد (CGrafPort) للتعامل مع اللون، بالإضافة إلى PixMaps بدلاً من BitMaps للصور متعددة البتات لكل بكسل. كانت إحدى الحيل المستخدمة لتحقيق التوافق هنا هي أن الهيكل الجديد كان بنفس حجم الهيكل القديم تمامًا، مع وجود معظم عناصر البيانات في نفس المكان، ولكن مع مقابض ومؤشرات إضافية لهياكل الألوان بدلاً من حقول BitMap. تم الضغط على البتين العلويين من حقل rowBytes لاستخدامهما كأعلام للتمييز بين GrafPort وCGrafPort (كانا دائمًا صفرًا في GrafPorts القديمة لأن BitMap لا يمكن أبدًا أن يكون واسعًا بما يكفي لتعيين هذه البتات). كان استخدام هذين البتين المرتفعين سيعود ليطارد QuickDraw لاحقًا، حيث فرض عرض صف أقصى يبلغ 4095 فقط على PixMaps 32 بت، وهو ما أصبح مشكلة بالنسبة لأعمال الرسومات عالية الدقة. أزال التطوير اللاحق (Mac OS 8.5/Carbon) هذا القيد ولكنه لم يكن متوافقًا تمامًا مع الإصدارات السابقة. تمت إضافة Palette Manager أيضًا في Color QuickDraw والذي أدار التحكيم في الألوان على أجهزة الفيديو المفهرسة. ظلت معظم عمليات بدائيات الرسومات إما دون تغيير (ولكنها ستعمل بالألوان)، أو تمت إضافة إصدارات ملونة جديدة من واجهات برمجة التطبيقات بالأبيض والأسود.
في البداية، كان برنامج Color QuickDraw قادرًا فقط على العمل مع بطاقات الفيديو 1 و2 و4 و8 بت، والتي كانت كل ما كان متاحًا في ذلك الوقت. ولكن بعد فترة وجيزة، ظهرت بطاقات الفيديو 24 بت (ما يسمى بالألوان الحقيقية)، وتم تحديث برنامج QuickDraw مرة أخرى لدعم ما يصل إلى 32 بت لكل بكسل (في الواقع، 24 بت، مع 8 بت غير مستخدمة) من بيانات الألوان ("32-Bit QuickDraw"). ومع ذلك، سمحت البنية دائمًا بهذا، لذلك لم تكن هناك حاجة إلى واجهات برمجة تطبيقات جديدة. سمحت هياكل بيانات الألوان نفسها بعمق لون 1 و2 و4 و8 و15 و24 بت، مما أدى إلى 2 و4 و16 و256 و32768 و16777216 لونًا على التوالي، أو 4 و16 و256 مقياسًا من اللون الرمادي. لقد اهتم برنامج QuickDraw بإدارة إعادة أخذ العينات من الألوان إلى أعماق الألوان المتاحة في أجهزة الفيديو الفعلية، أو النقل بين مخازن الصور خارج الشاشة، بما في ذلك تقليل عمق الصور بشكل اختياري إلى عمق أقل لتحسين جودة الصورة. كما تمت إضافة مجموعة من أدوات أخذ العينات من الألوان حتى يتمكن المبرمجون من إنشاء لوحات ألوان مثالية للاستخدام مع أجهزة الفيديو المفهرسة.
كانت بنية QuickDraw تسمح دائمًا بإنشاء GrafPorts وBitMaps أو PixMaps المرتبطة بها "خارج الشاشة"، حيث يمكن تكوين الرسومات في الذاكرة دون أن تكون مرئية على الفور على الشاشة. يمكن نقل وحدات البكسل بين هذه المنافذ خارج الشاشة والشاشة باستخدام وظيفة QuickDraw blitting CopyBits. يعد هذا التكوين خارج الشاشة بمثابة العمود الفقري للألعاب والتطبيقات التي تتطلب رسومات مكثفة. ومع ذلك، حتى ظهور QuickDraw 32-Bit، كان لابد من إنشاء مثل هذه العوالم خارج الشاشة وإعدادها يدويًا بواسطة المبرمجين داخل تطبيقاتهم. قد يكون هذا عرضة للخطأ، لأنه يتضمن ثلاثة أو أكثر من هياكل البيانات المنفصلة والمعقدة إلى حد ما (CGrafPort وPixMap وGDevice، وللأجهزة المفهرسة، جدول البحث عن الألوان وعكسه). مع QuickDraw 32-Bit، تمت إضافة دعم نظام التشغيل للتعامل مع هذا، مع "Offscreen Graphics World" أو GWorld. يمكن تخزين مخزن الفيديو (PixMap) الخاص بجهاز GWorld في الذاكرة الرئيسية، أو عند توفره في الأجزاء غير المستخدمة من ذاكرة الفيديو حيث يمكن تحسين النسخ إلى الشاشة من أجل السرعة من خلال تجنب الحاجة إلى نقل كمية كبيرة من بيانات البكسل عبر ناقل الذاكرة الرئيسي.
مع ظهور QuickTime ، اكتسب QuickDraw القدرة على التعامل مع بيانات الراستر المضغوطة، مثل JPEG . تم دمج QuickTime Image Compression Manager بشكل وثيق مع QuickDraw: على وجه الخصوص، كانت مكالمات فك ضغط الصورة عبارة عن مكالمات رسم QuickDraw كاملة، وإذا تم تسجيل صورة، فسيتم حفظ البيانات المضغوطة كجزء من الصورة، لعرضها عند رسم الصورة لاحقًا. أضاف Image Compression Manager أيضًا التكامل مع مطابقة الألوان ColorSync .
بعد ذلك، وبصرف النظر عن التغييرات التي طرأت على الواجهة الخلفية لتحسين بنيات المعالج الجديدة ( PowerPC )، ظل QuickDraw دون تغيير إلى حد كبير طوال بقية عمر نظام التشغيل Mac OS الكلاسيكي. كان QuickDraw GX و QuickDraw 3D يشتركان في اسم QuickDraw وكانا قادرين على التفاعل مع QuickDraw PixMap وهياكل بيانات الصور، ولكنهما كانا منفصلين تمامًا في الوظائف بخلاف ذلك.
مع نظام التشغيل Mac OS X، أصبح QuickDraw جزءًا من واجهة برمجة التطبيقات Carbon . في عام 2005، مع إصدار نظام التشغيل Mac OS X 10.4، تم إيقاف QuickDraw رسميًا.
في عام 2010 مع إصدار كود مصدر MacPaint 1.3 من خلال متحف تاريخ الكمبيوتر ، [4] أصبح إصدار تاريخي من كود مصدر QuickDraw متاحًا أيضًا. [5]
انظر أيضا
مراجع
- ^ "الفولكلور: -2000 سطر من التعليمات البرمجية". folklore.org .
- ^ ليفي، ستيفن (مايو 1987). "صناعة ماكنتوش 2". ماكوورلد . سان فرانسيسكو: بي سي دبليو كوميونيكيشنز. ص. 55-63. ISSN 0741-8647 . تم الاسترجاع في 31 يوليو 2024. ص. 60:
قام شاب يبلغ من العمر 23 عامًا يُدعى إيرني بيرنيك [كذا] بإعادة صياغة روتينات الرسومات في QuickDraw بشكل رائع لاستيعاب اللون.
- ^ ألين، دان (صيف 1988). "مقدمة إلى برمجة HyperCard". مجلة دكتور دوب الخاصة بماكنتوش . ص 56-74. ISSN 1044-789X . تم الاسترجاع في 2 أغسطس 2024. ص 64:
ومع ذلك، لم يكن بيل مشاركًا في Color QuickDraw، الموجود على Mac II، لأنه كان مشاركًا في HyperCard في ذلك الوقت. قام إيرني بيرنينك وديف فونج بإنشاء Color QuickDraw.
- ^ "MacPaint and QuickDraw Source Code". متحف تاريخ الكمبيوتر . 20 يوليو 2010.
- ^ Hesseldahl, Erik (2010-07-20). "Apple Donates MacPaint Source Code To Computer History Museum". businessweek.com. مؤرشف من الأصل في 2012-02-09 . تم الاسترجاع في 2014-08-23 .
روابط خارجية
- Apple Computer, Inc. Imaging With QuickDraw (PDF) . مؤرشف من الأصل (PDF) في 2013-05-17 . تم الاسترجاع 2018-03-09 .- وثائق QuickDraw الأصلية من developer.apple.com
- Apple Computer, Inc. QuickDraw Reference (Legacy) (PDF) . مؤرشف من الأصل (PDF) في 2014-04-18 . تم الاسترجاع في 2018-03-09 .- توثيق QuickDraw لاحقًا من developer.apple.com
- QuickDraw - قائمة بموارد QuickDraw من developer.apple.com
- Folklore.org: قصص Macintosh: المستطيلات المستديرة موجودة في كل مكان!، مايو 1981، قصة عن إنشاء QuickDraw
- كود المصدر لـ MacPaint وQuickDraw، متحف تاريخ الكمبيوتر
- -2000 سطر من الكود
