سؤال

وأنا أحاول أن إنشاء شيء في SDL [في C ++] أين يمكنني رسم مستطيل بكسل واحد كبير. أنا عندي كل شيء في قانون بلدي العمل ما عدا بلدي SDL_Surface الثاني يسمى المستطيل. أواجه صعوبة في تهيئة ذلك. وفيما يلي السطر حيث أحاول تهيئة ما يلي:

rectangle = SDL_Surface(SDL_DOUBLEBUF | SDL_HWACCEL | 
                        SDL_SRCALPHA  | SDL_HWSURFACE,
                        screen->format, 1, 1, 16, NULL, clip_rect, 1);

وشكرا لأخذ الوقت الكافي لقراءة هذه وأي الإجابات التي قد تختار أن تعطي.

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

المحلول

وأعتقد أن المشكلة الرئيسية التي تواجه هي أنه لا يوجد وظيفة SDL_Surface. لخلق سطح جديد، استخدم SDL_CreateRGBSurface . تأكد من الاتصال SDL_FreeSurface على سطح عاد بعد الانتهاء معها أو سوف تسرب الذاكرة.

وبالإضافة إلى ذلك، ولست متأكدا لماذا كنت تقوم بإنشاء السطح لالمستطيل. وهناك طريقة أكثر نظافة من رسم مستطيل ذات الألوان الصلبة هي SDL_FillRect دون خلق جديد السطح.

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