Status: applied Index: b/glide3x/h3/glide3/src/gaa.c =================================================================== --- a/glide3x/h3/glide3/src/gaa.c +++ b/glide3x/h3/glide3/src/gaa.c @@ -616,7 +616,7 @@ _grAADrawPoints(FxI32 mode, FxI32 count, e = pointers; if (mode) e = *(float **)e; - (float *)pointers += stride; + pointers = (float *)pointers + stride; ptX = FARRAY(e, gc->state.vData.vertexInfo.offset); ptY = FARRAY(e, gc->state.vData.vertexInfo.offset+4); @@ -717,7 +717,7 @@ _grAADrawPoints(FxI32 mode, FxI32 count, if (mode) e = *(float **)e; oow = 1.0f / FARRAY(e, gc->state.vData.wInfo.offset); - (float *)pointers += stride; + pointers = (float *)pointers + stride; ptX = FARRAY(e, gc->state.vData.vertexInfo.offset) *oow*gc->state.Viewport.hwidth+gc->state.Viewport.ox; @@ -842,9 +842,9 @@ _grAADrawLineStrip(FxI32 mode, FxI32 lty v1 = *(float **)v1; v2 = *(float **)v2; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (ltype == GR_LINES) - (float *)pointers += stride; + pointers = (float *)pointers + stride; /* draw from low Y to high Y */ if (FARRAY(v2, gc->state.vData.vertexInfo.offset+4) < FARRAY(v1, gc->state.vData.vertexInfo.offset+4)) { @@ -1023,9 +1023,9 @@ _grAADrawLineStrip(FxI32 mode, FxI32 lty v1 = *(float **)v1; v2 = *(float **)v2; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (ltype == GR_LINES) - (float *)pointers += stride; + pointers = (float *)pointers + stride; owa = oowa = 1.0f / FARRAY(v1, gc->state.vData.wInfo.offset); owb = oowb = 1.0f / FARRAY(v2, gc->state.vData.wInfo.offset); } @@ -1037,7 +1037,7 @@ _grAADrawLineStrip(FxI32 mode, FxI32 lty v1 = *(float **)v1; v2 = *(float **)v2; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; owb = oowb = 1.0f / FARRAY(v2, gc->state.vData.wInfo.offset); } @@ -1373,7 +1373,7 @@ _grAADrawTriangles(FxI32 mode, FxI32 tty b = *(float **)b; c = *(float **)c; } - (float *)pointers += stride*3; + pointers = (float *)pointers + stride*3; /* move culling test to here */ { @@ -1549,7 +1549,7 @@ _grAAVpDrawTriangles(FxI32 mode, FxI32 t b = *(float **)b; c = *(float **)c; } - (float *)pointers += stride*3; + pointers = (float *)pointers + stride*3; oowa = 1.0f / FARRAY(a, gc->state.vData.wInfo.offset); oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); oowc = 1.0f / FARRAY(c, gc->state.vData.wInfo.offset); @@ -1716,7 +1716,7 @@ _grAADrawVertexList(FxU32 type, FxI32 mo if (type == kSetupFan) { v[0] = (mode == 0) ? pointers : *(float **)pointers; while (sCount--) { - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (mode) { v[1] = *(float **)pointers; v[2] = *((float **)pointers+1); @@ -1758,7 +1758,7 @@ _grAADrawVertexList(FxU32 type, FxI32 mo _grAADrawTriangles(1, type, 3, v); else _grAAVpDrawTriangles(1, type, 3, v); - (float *)pointers += stride; + pointers = (float *)pointers + stride; flip = ~flip; } flip = ~flip; Index: b/glide3x/h3/glide3/src/gdraw.c =================================================================== --- a/glide3x/h3/glide3/src/gdraw.c +++ b/glide3x/h3/glide3/src/gdraw.c @@ -402,7 +402,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, v vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; GDBG_INFO_MORE(gc->myLevel, "(%f %f)\n", FARRAY(vPtr,gc->state.vData.vertexInfo.offset), @@ -491,7 +491,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, v if (mode) vPtr = *(float **)vPtr; oow = 1.0f / FARRAY(vPtr, gc->state.vData.wInfo.offset); - (float *)pointers += stride; + pointers = (float *)pointers + stride; { FxU32 x, y; @@ -616,9 +616,9 @@ _grDrawLineStrip(FxI32 mode, FxI32 ltype a = *(float **)a; b = *(float **)b; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (ltype == GR_LINES) - (float *)pointers += stride; + pointers = (float *)pointers + stride; /* ** compute absolute deltas and draw from low Y to high Y @@ -778,10 +778,10 @@ _grDrawLineStrip(FxI32 mode, FxI32 ltype a = *(float **)a; b = *(float **)b; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; owa = oowa = 1.0f / FARRAY(a, gc->state.vData.wInfo.offset); owb = oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); - (float *)pointers += stride; + pointers = (float *)pointers + stride; } else { owa = oowa = oowb; @@ -791,7 +791,7 @@ _grDrawLineStrip(FxI32 mode, FxI32 ltype a = *(float **)a; b = *(float **)b; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; owb = oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); } fay = tmp1 = FARRAY(a, gc->state.vData.vertexInfo.offset+4) @@ -944,7 +944,7 @@ _grDrawTriangles_Default(FxI32 mode, FxI vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; i = gc->tsuDataList[dataElem]; @@ -984,7 +984,7 @@ _grDrawTriangles_Default(FxI32 mode, FxI *oow*gc->state.Viewport.hwidth + gc->state.Viewport.ox); TRI_SETF(FARRAY(vPtr, 4) *oow*gc->state.Viewport.hheight + gc->state.Viewport.oy); - (float *)pointers += stride; + pointers = (float *)pointers + stride; TRI_VP_SETFS(vPtr,oow); } Index: b/glide3x/h3/glide3/src/gstrip.c =================================================================== --- a/glide3x/h3/glide3/src/gstrip.c +++ b/glide3x/h3/glide3/src/gstrip.c @@ -190,7 +190,7 @@ _grDrawVertexList(FxU32 pktype, FxU32 ty vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; TRI_SETF(FARRAY(vPtr, 0)); dataElem = 0; @@ -230,7 +230,7 @@ _grDrawVertexList(FxU32 pktype, FxU32 ty *oow*gc->state.Viewport.hwidth + gc->state.Viewport.ox); TRI_SETF(FARRAY(vPtr, 4) *oow*gc->state.Viewport.hheight + gc->state.Viewport.oy); - (float *)pointers += stride; + pointers = (float *)pointers + stride; TRI_VP_SETFS(vPtr, oow); } Index: b/glide3x/h3/glide3/src/distrip.c =================================================================== --- a/glide3x/h3/glide3/src/distrip.c +++ b/glide3x/h3/glide3/src/distrip.c @@ -450,7 +450,7 @@ GR_DIENTRY(grDrawVertexArray, void , (Fx else { while ((int)Count >= 3) { grDrawTriangle(*(float **)pointers, *((float **)pointers+1), *((float **)pointers+2)); - (float *)pointers += 3; + pointers = (float *)pointers + 3; Count -= 3; } } Index: b/glide3x/h5/glide3/src/gaa.c =================================================================== --- a/glide3x/h5/glide3/src/gaa.c +++ b/glide3x/h5/glide3/src/gaa.c @@ -628,7 +628,7 @@ _grAADrawPoints(FxI32 mode, FxI32 count, e = pointers; if (mode) e = *(float **)e; - (float *)pointers += stride; + pointers = (float *)pointers + stride; ptX = FARRAY(e, gc->state.vData.vertexInfo.offset); ptY = FARRAY(e, gc->state.vData.vertexInfo.offset+4); @@ -729,7 +729,7 @@ _grAADrawPoints(FxI32 mode, FxI32 count, if (mode) e = *(float **)e; oow = 1.0f / FARRAY(e, gc->state.vData.wInfo.offset); - (float *)pointers += stride; + pointers = (float *)pointers + stride; ptX = FARRAY(e, gc->state.vData.vertexInfo.offset) *oow*gc->state.Viewport.hwidth+gc->state.Viewport.ox; @@ -856,9 +856,9 @@ _grAADrawLineStrip(FxI32 mode, FxI32 lty v1 = *(float **)v1; v2 = *(float **)v2; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (ltype == GR_LINES) - (float *)pointers += stride; + pointers = (float *)pointers + stride; /* draw from low Y to high Y */ if (FARRAY(v2, gc->state.vData.vertexInfo.offset+4) < FARRAY(v1, gc->state.vData.vertexInfo.offset+4)) { @@ -1037,9 +1037,9 @@ _grAADrawLineStrip(FxI32 mode, FxI32 lty v1 = *(float **)v1; v2 = *(float **)v2; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (ltype == GR_LINES) - (float *)pointers += stride; + pointers = (float *)pointers + stride; owa = oowa = 1.0f / FARRAY(v1, gc->state.vData.wInfo.offset); owb = oowb = 1.0f / FARRAY(v2, gc->state.vData.wInfo.offset); } @@ -1051,7 +1051,7 @@ _grAADrawLineStrip(FxI32 mode, FxI32 lty v1 = *(float **)v1; v2 = *(float **)v2; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; owb = oowb = 1.0f / FARRAY(v2, gc->state.vData.wInfo.offset); } @@ -1391,7 +1391,7 @@ _grAADrawTriangles(FxI32 mode, FxI32 tty b = *(float **)b; c = *(float **)c; } - (float *)pointers += stride*3; + pointers = (float *)pointers + stride*3; /* move culling test to here */ { @@ -1567,7 +1567,7 @@ _grAAVpDrawTriangles(FxI32 mode, FxI32 t b = *(float **)b; c = *(float **)c; } - (float *)pointers += stride*3; + pointers = (float *)pointers + stride*3; oowa = 1.0f / FARRAY(a, gc->state.vData.wInfo.offset); oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); oowc = 1.0f / FARRAY(c, gc->state.vData.wInfo.offset); @@ -1734,7 +1734,7 @@ _grAADrawVertexList(FxU32 type, FxI32 mo if (type == kSetupFan) { v[0] = (mode == 0) ? pointers : *(float **)pointers; while (sCount--) { - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (mode) { v[1] = *(float **)pointers; v[2] = *((float **)pointers+1); @@ -1776,7 +1776,7 @@ _grAADrawVertexList(FxU32 type, FxI32 mo _grAADrawTriangles(1, type, 3, v); else _grAAVpDrawTriangles(1, type, 3, v); - (float *)pointers += stride; + pointers = (float *)pointers + stride; flip = ~flip; } flip = ~flip; Index: b/glide3x/h5/glide3/src/gdraw.c =================================================================== --- a/glide3x/h5/glide3/src/gdraw.c +++ b/glide3x/h5/glide3/src/gdraw.c @@ -472,7 +472,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, v vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; GDBG_INFO_MORE(gc->myLevel, "(%f %f)\n", FARRAY(vPtr,gc->state.vData.vertexInfo.offset), @@ -554,7 +554,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, v vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; GDBG_INFO_MORE(gc->myLevel, "(%f %f)\n", FARRAY(vPtr,gc->state.vData.vertexInfo.offset), @@ -665,7 +665,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, v if (mode) vPtr = *(float **)vPtr; oow = 1.0f / FARRAY(vPtr, gc->state.vData.wInfo.offset); - (float *)pointers += stride; + pointers = (float *)pointers + stride; { float fx, fy; @@ -802,9 +802,9 @@ _grDrawLineStrip(FxI32 mode, FxI32 ltype a = *(float **)a; b = *(float **)b; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; if (ltype == GR_LINES) - (float *)pointers += stride; + pointers = (float *)pointers + stride; /* ** compute absolute deltas and draw from low Y to high Y @@ -964,10 +964,10 @@ _grDrawLineStrip(FxI32 mode, FxI32 ltype a = *(float **)a; b = *(float **)b; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; owa = oowa = 1.0f / FARRAY(a, gc->state.vData.wInfo.offset); owb = oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); - (float *)pointers += stride; + pointers = (float *)pointers + stride; } else { owa = oowa = oowb; @@ -977,7 +977,7 @@ _grDrawLineStrip(FxI32 mode, FxI32 ltype a = *(float **)a; b = *(float **)b; } - (float *)pointers += stride; + pointers = (float *)pointers + stride; owb = oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); } fay = tmp1 = FARRAY(a, gc->state.vData.vertexInfo.offset+4) @@ -1125,7 +1125,7 @@ _grDrawTriangles_Default(FxI32 mode, FxI vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; i = gc->tsuDataList[dataElem]; @@ -1165,7 +1165,7 @@ _grDrawTriangles_Default(FxI32 mode, FxI *oow*gc->state.Viewport.hwidth + gc->state.Viewport.ox); TRI_SETF(FARRAY(vPtr, 4) *oow*gc->state.Viewport.hheight + gc->state.Viewport.oy); - (float *)pointers += stride; + pointers = (float *)pointers + stride; TRI_VP_SETFS(vPtr,oow); } Index: b/glide3x/h5/glide3/src/gstrip.c =================================================================== --- a/glide3x/h5/glide3/src/gstrip.c +++ b/glide3x/h5/glide3/src/gstrip.c @@ -214,7 +214,7 @@ _grDrawVertexList(FxU32 pktype, FxU32 ty vPtr = pointers; if (mode) vPtr = *(float **)vPtr; - (float *)pointers += stride; + pointers = (float *)pointers + stride; TRI_SETF(FARRAY(vPtr, 0)); dataElem = 0; @@ -254,7 +254,7 @@ _grDrawVertexList(FxU32 pktype, FxU32 ty *oow*gc->state.Viewport.hwidth + gc->state.Viewport.ox); TRI_SETF(FARRAY(vPtr, 4) *oow*gc->state.Viewport.hheight + gc->state.Viewport.oy); - (float *)pointers += stride; + pointers = (float *)pointers + stride; TRI_VP_SETFS(vPtr, oow); } Index: b/glide3x/h5/glide3/src/distrip.c =================================================================== --- a/glide3x/h5/glide3/src/distrip.c +++ b/glide3x/h5/glide3/src/distrip.c @@ -458,7 +458,7 @@ GR_DIENTRY(grDrawVertexArray, void , (Fx else { while ((int)Count >= 3) { grDrawTriangle(*(float **)pointers, *((float **)pointers+1), *((float **)pointers+2)); - (float *)pointers += 3; + pointers = (float *)pointers + 3; Count -= 3; } } --- x/glide3x-20010309/h5/glide3/src/glfb.c.orig 2022-09-26 21:32:58.823335084 +0200 +++ x/glide3x-20010309/h5/glide3/src/glfb.c 2022-09-26 21:37:53.375072694 +0200 @@ -1333,8 +1333,10 @@ GR_ENTRY(grLfbReadRegion, FxBool, (GrBuf while(src_height--) { /* adjust starting alignment */ - if (((FxU32)src)&3) - *((FxU16 *)dst)++=*((FxU16 *)src)++; + if (((FxU32)src)&3) { + *((FxU16 *)dst)=*((FxU16 *)src); + dst = ((FxU16 *)dst)+1; src = ((FxU16 *)src); + } /* read in dwords of pixels */ if(length) @@ -1353,8 +1355,8 @@ GR_ENTRY(grLfbReadRegion, FxBool, (GrBuf *((FxU16 *)(((FxU32)dst) + byte_index))=*((FxU16 *)(((FxU32)src) + byte_index)); } /* adjust for next line */ - ((FxU8 *)src)+=src_adjust; - ((FxU8 *)dst)+=dst_adjust; + src=((FxU8 *)src)+src_adjust; + dst=((FxU8 *)dst)+dst_adjust; } rv=FXTRUE; /* unlock buffer */