CGSSetWindowWarp не работает в 64-битных приложениях - PullRequest
0 голосов
/ 10 июля 2010

Я разрабатываю приложение для Mac OS X, используя недокументированную функцию CGSSetWindowWarp.Все нормально при компиляции в 32 бита, но перестает работать (окно исчезает полностью) при компиляции в 64 бита.Есть ли у вас идеи, где проблема может быть?

Заранее благодарим за помощь

С уважением,

Ответы [ 2 ]

1 голос
/ 10 июля 2010

Вы уверены в сигнатуре функции?Размер параметров мог измениться или не измениться, но int должен быть коротким и т. Д.

Или же они вообще прекратили поддерживать эту функцию.

0 голосов
/ 02 февраля 2011

Точки в сетке основы на самом деле не CGPoints, они используют float для x и y даже в 64-битном режиме. (CGPoint использует double на 64-битной)

Вы можете переопределить сетку основы и функционировать так:

typedef struct CGSPoint {
    float x;
    float y;
} CGSPoint;

typedef struct {
    CGSPoint local; 
    CGSPoint global;
} CGSPointWarp;

extern CGError CGSSetWindowWarp(CGSConnectionID conn, CGSWindowID window, int w, int h, CGSPointWarp **mesh)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...