عرض PostScript
نظام عرض بوست سكريبت (أو DPS ) هو نظام محرك رسومات ثنائي الأبعاد لأجهزة الكمبيوتر، يستخدم نموذج ولغة التصوير بوست سكريبت (PS) لإنشاء رسومات على الشاشة. طُوّر بوست سكريبت في الأصل للطباعة الحاسوبية ، وأضاف إليه نظام DPS عددًا من الميزات المصممة لتسهيل العمل مع شاشات العرض النقطية وتحسين أداء بعض المهام الشائعة.
طُوّرت الإصدارات الأولى من أنظمة عرض PostScript في شركة Adobe Systems . وخلال تطوير حواسيب NeXT ، تعاونت NeXT مع Adobe لإنتاج نظام DPS الرسمي، الذي صدر عام 1987. وقد استخدمت NeXT نظام DPS طوال تاريخها، بينما كانت إصدارات Adobe شائعة على محطات عمل Unix لفترة من الزمن خلال الثمانينيات والتسعينيات.
تصميم
كُتبت لغة PostScript الأصلية للطباعة، وكان نموذجها يقوم على طباعة مستند واحد فقط في كل مرة، وتقسيم هذا المستند إلى أقسام منطقية تُقارب حجم الصفحة. ولهذا السبب، استند النموذج الأساسي للغة PostScript إلى آلة مكدس مشابهة للغة البرمجة Forth ، مما قلل من تعقيد الكود على الطابعة وحجم الذاكرة اللازمة لتخزين الرسومات الفردية. يقوم النظام بتجميع التعليمات حتى showpageيتم إصدار الأمر، وعندها showpageتُنفذ جميع التعليمات المُستلمة منذ آخر جلسة أو منذ بدايتها، ويُمكن تحرير الذاكرة التي استخدمتها تلك التعليمات. [ 1 ]
على النقيض من ذلك، يعمل محرك العرض في بيئة مختلفة تمامًا. لا يوجد ما يُماثل نظامًا showpageيسمح بتنفيذ التعليمات المُجدولة، وعمومًا يُتوقع أن تتم أي عملية رسم فورًا. علاوة على ذلك، بينما لا تستطيع طابعة PS طباعة سوى مستند واحد في كل مرة، في حاسوب حديث مزود بنوافذ عرض متعددة ، يمكن تحديث جميع النوافذ في الوقت نفسه باستخدام إعدادات مختلفة. وقد عُولج هذا الأمر بإدخال سياقات تنفيذ متعددة ، يُحاكي كل منها النموذج الموجود على الطابعة؛ أي أن لكل نافذة سياق PS خاص بها ومكدس تعليمات، ويمكن لكل نافذة بعد ذلك إنتاج مخرجات بإعدادات مختلفة، مثل ما إذا كان السطر التالي متقطعًا أم متصلًا. وفر نظام DPS استدعاءات مكتبة لإنشاء السياقات، والتي يمكن أن تكون مستقلة تمامًا أو مشتركة. [ 2 ] كانت السياقات المشتركة مفيدة في أنظمة النوافذ لأنها سمحت لجميع النوافذ داخل تطبيق واحد، أو حتى عبر تطبيقات متعددة، بمشاركة الإعدادات، وخاصة الإجراءات المُعرّفة مسبقًا والمخزنة في userdict. كان globaldictأحد الاستخدامات المهمة بشكل خاص للسياقات المشتركة globaldictهو تخزين الخطوط على مستوى النظام. [ 3 ]
كان لا بد من تعديل نظام الخطوط نفسه. يمتلك برنامج فوتوشوب نظامًا قويًا يُنتج خطوطًا عالية الجودة من أوصاف الخطوط الخارجية، بما في ذلك "تلميحات" تُحسّن الجودة عند الأحجام الصغيرة. يعتمد كل هذا على دقة عرض عالية نسبيًا، عادةً 300 نقطة في البوصة وما فوق. بالنسبة للشاشات ذات الدقة المنخفضة (عادةً 72 نقطة في البوصة في ذلك الوقت)، لم تكن النتائج مُرضية. أضاف برنامج فوتوشوب نظامًا يسمح بتخزين الصور النقطية المرسومة يدويًا مؤقتًا في القواميس، والذي استُخدم لتوفير خطوط يمكن نقلها مباشرةً إلى الشاشة. [ 4 ] تراجع استخدام الصور النقطية المُعالجة مسبقًا مع انتشار تقنية منع التعرج ، التي تُعالج العديد من هذه المشكلات. وبالمثل، أضاف برنامج فوتوشوب دعمًا لطور التظليل النصفي لضمان أن يكون للكائنات المرسومة حديثًا نفس التظليل النصفي للكائنات السابقة، [ 5 ] ولكن هذه الميزة أيضًا تراجعت أهميتها في الأنظمة الحديثة.
خزّنت PS الكائنات والتعليمات البرمجية داخل القواميس باستخدام مُعرّفات نصية. جعل هذا الأمر عملية البحث عن التعريف مكلفة مع ازدياد حجم المجموعات، وهو أثر جانبي للعديد من هذه الميزات الجديدة. عالجت DPS هذه المشكلة بإضافة إمكانية تخزين الكائنات في القاموس باستخدام أعداد صحيحة بدلاً من النصوص. يمكن لمفهوم "أسماء النظام المُشفّرة" هذا أن يُحسّن بشكل كبير أداء مهام متنوعة مثل البحث عن خط نظام أو البحث عن إجراء شائع مثل "رسم شريط العنوان". تم تخزين هذه الأسماء المُشفّرة على أساس السياق. [ 6 ]
تضمنت التغييرات الأخرى تلبية الحاجة إلى التفاعل المباشر. وشمل ذلك إمكانية إجراء تحديثات تدريجية بحيث يمكن تنفيذ أوامر PS التي تُنتج مخرجات على الفور. [ 7 ] كما وُجدت أنظمة للكشف عن الاصطدامات ، بحيث يمكن معرفة ما إذا كان موقع معين قد اصطدم بأي من الكائنات المرسومة. استُخدم هذا، على سبيل المثال، لاختبار الكائنات التي يتم الاصطدام بها في العرض عند النقر بالماوس. [ 8 ]
أخيرًا، أضاف نظام DPS مفهومًا جديدًا pswrap، وهو دالة مكتوبة بلغة C تأخذ أوامر DPS على شكل سلاسل نصية وترسلها إلى سياق DPS لعرضها. وقد سمح هذا، على سبيل المثال، بكتابة دالة بلغة C تُنتج مستطيلًا على الشاشة. [ 9 ]
مع ذلك، لم يُضِف نظام DPS نظام نوافذ. تُرِك ذلك للتنفيذ، وكان من المفترض استخدام DPS بالتزامن مع محرك نوافذ موجود. غالبًا ما كان هذا المحرك هو نظام X Window ، وبهذا الشكل اعتمدته لاحقًا شركات مثل IBM و SGI لمحطات العمل الخاصة بها. في كثير من الأحيان، كان الكود اللازم للانتقال من نافذة X إلى سياق DPS أكثر تعقيدًا بكثير من بقية واجهة DPS بأكملها. هذا الأمر حدّ بشكل كبير من انتشار DPS عند توفر أي بديل.
تاريخ
في سبتمبر 1987، أصبحت شركة NeXT أول شركة تحصل على ترخيص Display Postscript. [ 10 ] قام مطورو NeXT بكتابة محرك نوافذ جديد كليًا للاستفادة الكاملة من نظام التشغيل الكائني التوجه الخاص بـ NeXT . أُضيفت مجموعة من الأوامر إلى DPS لإنشاء النوافذ والتفاعل مع الأحداث، على غرار NeWS ولكن بشكل أبسط . سهّلت واجهة برمجة التطبيقات الموحدة البرمجة على مستويات أعلى، وجعلت NeXT أحد الأنظمة القليلة التي تستخدم DPS على نطاق واسع. استخدمت مكتبة نظام النوافذ في مساحة المستخدم NeXTSTEP لغة Postscript لرسم عناصر مثل أشرطة العناوين وأشرطة التمرير. وهذا بدوره استخدم عناصر pswraps على نطاق واسع، والتي كانت بدورها مُغلّفة في كائنات ومُقدّمة للمبرمج في شكل كائن.
في أوائل عام 1988، منحت شركة ديجيتال إكويبمنت ترخيصًا لتقنية ديسبلاي بوست سكريبت لنظام التشغيل دي إي سي ويندوز . وأعربت أدوبي عن أملها في أن تستخدم كل من آي بي إم ومايكروسوفت ، لنظام التشغيل أو إس/2 بريزنتيشن مانجر ، وشركة أبل كمبيوتر هذه التقنية أيضًا. [ 10 ]
في نوفمبر 1993، قامت شركة صن مايكروسيستمز بشحن OpenWindows 3.3، الذي أسقط دعم NeWS وامتداداته غير القياسية لـ PostScript، واستبدله بـ DPS.
المشتقات الحديثة
بعد استحواذها على شركة NeXT، يستخدم نظام التشغيل Mac OS X من Apple خادم نوافذ مركزيًا (أنشأته Apple بالكامل) يقوم بتخزين رسومات النوافذ مؤقتًا كصور نقطية، بدلًا من تخزين وتنفيذ كود PostScript. توفر مكتبة رسومات تُسمى Quartz 2D تصويرًا بنمط PostScript باستخدام نموذج عرض PDF (وهو مجموعة فرعية، مع بعض التعديلات، من نموذج PostScript)، ولكن هذا النموذج يُستخدم بواسطة أُطر عمل التطبيقات - لا يوجد PostScript في خادم نوافذ Mac OS X. اختارت Apple استخدام هذا النموذج لأسباب متعددة، منها تجنب رسوم ترخيص DPS ودعم أكواد Carbon و Classic القديمة بكفاءة أكبر ؛ إذ تستخدم التطبيقات القائمة على QuickDraw الرسم النقطي حصريًا.
انظر أيضاً
- NeWS ، وهو نظام نوافذ مشابه يستخدم نموذج PostScript الرسومي، ولكن مع إضافات للتزامن والأحداث والبرمجة كائنية التوجه.
- ترميز PostScript القياسي (مجموعة أحرف PostScript)
- مجموعة أحرف NeXT
مراجع
الاقتباسات
- ↑ Adobe 1990 ، ص 325.
- ↑ Adobe 1990 ، ص 326.
- ↑ Adobe 1990 ، ص 327.
- ↑ Adobe 1990 ، ص 339.
- ↑ Adobe 1990 ، ص 337.
- ^ أدوبي 1990 ، ص 332-333.
- ↑ Adobe 1990 ، ص 335.
- ↑ Adobe 1990 ، ص 336.
- ↑ Adobe 1990 ، ص 334.
- 1 2 لاش، إريك (18 يناير 1988). "أدوبي تحث أبل وآي بي إم على استخدام ديسبلاي بوست سكريبت" . إنفوورلد . المجلد 10، العدد 3. ص 5. تاريخ الاسترجاع 25-05-2025 .
فهرس
- دليل مرجعي للغة PostScript، الطبعة الثانية (PDF) . أنظمة أدوبي. ديسمبر 1990.
للمزيد من القراءة
- شركة أدوبي سيستمز (1990) [1985]. دليل مرجعي للغة بوست سكريبت ( الطبعة الثانية). شركة أديسون ويسلي للنشر .(ملاحظة: تحتوي هذه الطبعة أيضًا على وصف لـ Display PostScript، والذي لم يعد يتم مناقشته في الطبعة الثالثة.)
روابط خارجية
- الوصف موجود في C2 Wiki
- جنو/باك بون
- أحدث مواصفات PDF، الإصدار 1.7
- مرجع لغة بوست سكريبت، الطبعة الثانية
- وثائق مرجعية لما بعد عرض النص البرمجي
- مقارنة بين عرض PostScript و NeWS
- التالي
- ملاحظة لاحقة
- برامج متوقفة
