Я пытаюсь скомпилировать X11R6-7.0 под Ubuntu Maverick и получил некоторые странные ошибки компиляции, которые я не могу решить самостоятельно.
Мне нужен X11R6-7.0, поскольку драйверы катализатора ati не поддерживают более новые драйверы xorg, а драйверы oss не поддерживают 3D-ускорение моего оборудования.
Кто-нибудь знает, что означает это сообщение об ошибке? Я знаю немного C , но я немного запутался. Означает ли это, что GET_FB_DATA
макрос вернул NULL
или какой-то метод / свойство не установлено?
Любое дальнейшее понимание того, как "отлаживать" определения препроцессора на этом этапе, было бы замечательно. Я не думаю, что смогу напечатать что-нибудь полезное с #error
.
Я получаю ошибку:
tdfx_span.c: в функции «tdfxDDWriteDepthPixels»:
tdfx_span.c: 976: ошибка: в качестве левого операнда присваивания требуется lvalue
tdfx_span.c: 1008: ошибка: в качестве левого операнда присваивания требуется lvalue
tdfx_span.c: в функции «write_stencil_pixels»:
tdfx_span.c: 1242: ошибка: в качестве левого операнда присваивания требуется lvalue
Код:
958- switch (depth_size) {
959- case 16:
960- GetBackBufferInfo(fxMesa, &backBufferInfo);
961- /*
962- * Note that the _LOCK macro adds a curly brace,
963- * and the UNLOCK macro removes it.
964- */
965- WRITE_FB_SPAN_LOCK(fxMesa, info,
966- GR_BUFFER_AUXBUFFER, GR_LFBWRITEMODE_ANY);
967- {
968- LFBParameters ReadParams;
969- GetFbParams(fxMesa, &info, &backBufferInfo,
970- &ReadParams, sizeof(GLushort));
971- for (i = 0; i < n; i++) {
972- if (mask[i] && visible_pixel(fxMesa, x[i], y[i])) {
973- xpos = x[i] + fxMesa->x_offset;
974- ypos = bottom - y[i];
975- d16 = depth[i];
976: PUT_FB_DATA(&ReadParams, GLushort, xpos, ypos, d16);
977- }
978- }
979- }
980- WRITE_FB_SPAN_UNLOCK(fxMesa, GR_BUFFER_AUXBUFFER);
981- break;
982- case 24:
и относительные макросы:
#define GET_FB_DATA(ReadParamsp, type, x, y) \
(((x) < (ReadParamsp)->firstWrappedX) \
? (((type *)((ReadParamsp)->lfbPtr)) \
[(y) * ((ReadParamsp)->LFBStrideInElts) \
+ (x)]) \
: (((type *)((ReadParamsp)->lfbWrapPtr)) \
[((y)) * ((ReadParamsp)->LFBStrideInElts) \
+ ((x) - (ReadParamsp)->firstWrappedX)]))
#define GET_ORDINARY_FB_DATA(ReadParamsp, type, x, y) \
(((type *)((ReadParamsp)->lfbPtr)) \
[(y) * ((ReadParamsp)->LFBStrideInElts) \
+ (x)])
#define GET_WRAPPED_FB_DATA(ReadParamsp, type, x, y) \
(((type *)((ReadParamsp)->lfbWrapPtr)) \
[((y)) * ((ReadParamsp)->LFBStrideInElts) \
+ ((x) - (ReadParamsp)->firstWrappedX)])
#define PUT_FB_DATA(ReadParamsp, type, x, y, value) \
(GET_FB_DATA(ReadParamsp, type, x, y) = (type)(value))
#define PUT_ORDINARY_FB_DATA(ReadParamsp, type, x, y, value) \
(GET_ORDINARY_FB_DATA(ReadParamsp, type, x, y) = (type)(value))
#define PUT_WRAPPED_FB_DATA(ReadParamsp, type, x, y, value) \
(GET_WRAPPED_FB_DATA(ReadParamsp, type, x, y) = (type)(value))
Структура LFBParameters
483-typedef struct
484-{
485- void *lfbPtr;
486- void *lfbWrapPtr;
487- FxU32 LFBStrideInElts;
488- GLint firstWrappedX;
489-}
490:LFBParameters;