سؤال

يبدو أنه aceepts قعت 32 بت إحداثيات X و Y

<اقتباس فقرة>   

وint XDrawString(Display *display, Drawable d, GC gc, int x, int y, char *string, int length);

لاحظ كيف كلا x و y هي كثافة العمليات (أي: وقعت 32 بت عدد صحيح على دول مجلس التعاون الخليجي / linux2.6-I386 على الأقل)

والمشكلة هي عندما أمرر y = 32767 (2 ^ 15-1). ويوجه السلسلة في الموقع الصحيح ولكن أي شيء أعلى من هذه القيمة لا يوجه سلسلة

وأظن أن داخليا 32 الأعداد الصحيحة الشيء لا تستخدم إلا وقع بدلا 16 بت الأعداد الصحيحة لالإحداثيات.

ونظرا إلى أن الصفحات رجل يبدو للإشارة إلى أن وظيفة تقبل 32 الأعداد الصحيحة الشيء، وهناك بعض خيار الترجمة التي تحتاج إلى أن تتحول إلى السماح باستخدام الأعداد الصحيحة أطول؟ أم أن هذه limmitation من Xlib؟

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

المحلول

وبروتوكول X11 يفعل تحديد 16 بت.

وإلقاء نظرة على تعريف xPolyTextReq في <X11/Xproto.h>

typedef struct {
    CARD8 reqType;
    CARD8 pad;
    CARD16 length B16;
    Drawable drawable B32;
    GContext gc B32;
    INT16 x B16, y B16;         /* items (xTextElt) start after struct */
} xPolyTextReq;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top