سؤال

كان لدينا لعبة أركيد / الاسترداد تعمل على WIN98، ولكن الأجهزة التي يمكن أن تديرها أخيرا قد انتهت عفا عليها الزمن. استخدمت اللعبة عددا من تأثيرات التحجيم، وبعضها من خلال المسار ثلاثي الأبعاد، ولعب بعض الحيل تتحرك الأشياء داخل وخارج ذاكرة الفيديو. إذا كنت أتعهد بتنفيذها لتشغيلها على نظام التشغيل Windows 7، فكم من المشاكل من المحتمل أن تكون؟ هل ستكون في الغالب إعادة جمع، أو أتعقد برمجة برمجة برمجة برمجة التطبيقات واجهات برمجة التطبيقات التي أجريت فيها برمجة برمجة برمجة برمجة برمجة أمير واجهات برمجة التطبيقات التي أجريت فيها واجهات برمجة التطبيقات من هذا التحول الذي قد أقوم بإعادة كتابة واجهات الجهاز؟

هل كانت مفيدة؟

المحلول

لا تفكر في الأمر على أنها تنقل إلى Win7. مجرد منفذ ببساطة إلى DX9 واترك DX القيام بالعمل مع أجزاء Win7. infact، ربما يمكنك فقط تركها كما هي وتشغيل Shuold - لكنك تذكرك أن تفعل أشياء مجنونة مع ذاكرة الفيديو التي أفترضها لا علاقة لها ب DX. (أي إما من خلال GDI أو بعض الاختراق الأخرى؟). على أي حال، جميع واجهات برمجة التطبيقات DX7 و 8 و 9 اختلافات جذرية للغاية. لكن الشيء الجميل هو أنهم جميعا متوافقين على الوراء. إذا كان التعليمات البرمجية لديك نقية DX7، فحاول تجميعها مقابل أحدث SDK ومعرفة ما إذا كان يعمل على Win7 مستقيم.

نصائح أخرى

لقد مر بعض الوقت منذ أن كتبت أي رمز DirectX7 (أو رمز X المباشر على الإطلاق) ولكن إذا كنت أتذكر أن هناك حدث بعض التغييرات في تطبيقات برمجية كبيرة بين 7 و 8 - دع 9 أو 10 - من شأنها أن تجعل مثل هذا التغيير قليلا أكثر صعوبة. على وجه التحديد، أعتقد أن التغيير الرئيسي هو أنهم أعيدو النظام بعد 7 لدمج DirectDraw في Direct3D بحيث لم تعد النظم منفصلة تماما بين 7 و 8. لم أنظر إليها منذ ذلك الحين، لكنني أظن أنها منحت عدد طرق الترميز الجديدة مثل أن API قد تغير قليلا حتى يكون من المحتمل أن يكون بعض المشروع لجعل هذه التغييرات بدلا من إعادة النظر في الغالب كما قد تأمل.

هل سبق لك أن تحركت الأشياء داخل وخارج ذاكرة الفيديو؟ مرتجز

لا يزال ... أسرع في القيام بذلك الآن عندما كان DX7 موجودا. ماذا كنت تفعل بالضبط؟ من وصفك من المستحيل أن نقول مدى سهولة ذلك. يجب أن لا يزال تطبيق DX7 يعمل على Windows 7، لا أستطيع التفكير في ما هي الميزات الفردية التي قد تستخدمها والتي من شأنها أن تتسبب في كسرها.

أيضا تحويل تطبيق إلى DX9 من 7 ليس في الواقع كل ذلك الصعب (التحويل إلى DX10 + سيكون كابوسا). ما زالوا مشابهين نسبيا ... الشيء الرئيسي الذي تغير منذ تلك الأيام هو تقصير أشياء مثل d3dtransformstagestate_ * أو d3drenderstate_ * إلى d3dtss_ * أو d3drs_ * *.

عدل هذا حقا إصلاح بسيط جدا على الرغم من ...

EDIT2: إزالة ضغط الأشياء من القرص في نسيج يمكن أن يكون قليلا من الألم. مشكلتك الرئيسية هي حقيقة أن تنتهي بك الأمر معاناة أداء ضرب عند إنشاء الملمس. ومع ذلك، إذا كان لديك حمولة من القوام التي تم إنشاؤها بالفعل وفتحها، فيمكنك التحميل إلى الملمس ذي الصلة كما وعودك. أنت تعاني فقط من قفل / فتح ضرب. يمكن تخفيفها عن طريق تحميل مورد بضع إطارات مقدما. إذا قمت بذلك، فليس ذلك، فلا تشكل بلا شك متعدد الخيوط ودعوة D3D من مؤشرات ترابط متعددة. إذا قمت بذلك، فقم بتعيين علامة مؤشر الترابط متعدد على الجهاز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top