freemint / fvdi

fVDI fork with additional fixes and drivers.
https://fvdi.sourceforge.io
7 stars 6 forks source link

Drawing bug #47

Open xdelatour opened 1 year ago

xdelatour commented 1 year ago

While doing some tests i found this:

fvdi-bug

I don't know where the problem comes from. Is it caused by a single function or by the combination of several?

    wind_get (hwind, WF_WORKXYWH, &xw, &yw, &ww, &hw);  /* Zone de travail */
    pxy[0] = xw;                                /* Preparer effacement fenetre */
    pxy[1] = yw;
    pxy[2] = xw + ww - 1;
    pxy[3] = yw + hw - 1;
    vswr_mode (handle, MD_REPLACE);             /* Dessin en mode Remplacement */
    vsf_color (handle, 0);                      /* Couleur blanche */
    v_bar (handle, pxy);                        /* "Vider" la fenetre */
    vsf_color (handle, 1);                  /* Couleur noire */
    vsf_perimeter (handle, 1);              /* Tracer le contour */

    ...

    case T_ELL :                        /* Ellipses */
        vsf_interior (handle, FIS_HOLLOW);      /* Vide */
        vsf_perimeter(handle, 1);
        vswr_mode (handle, MD_TRANS);           /* Mode transparent */
        for (i = 0 ; i < hw ; i += 3)           /* Boucle de dessin */
            v_ellipse (handle, xw + (ww / 2), yw + (hw / 2), i , (hw / 2) - i); /* Ellipse */
        break;
xdelatour commented 1 year ago

Maybe related to #34 ?

Atari260STE commented 8 months ago

the same story with DRI APSKEL.C ( https://github.com/ggnkua/Atari_ST_Sources/blob/master/C/Digital%20Research%20Inc/alcyon/apskel.c ) example, v_ellipse isn't filled with the pattern under the latest FreeMiNT and FVDI:

/****************************************************************/
/* Draw Filled Ellipse.                     */
/****************************************************************/
draw_sample()
{
int temp[4];
    vsf_interior(handle,2);
    vsf_style(handle,8);
    vsf_color(handle,0);
    temp[0]=xwork;
    temp[1]=ywork;
    temp[2]=xwork+wwork-1;
    temp[3]=ywork+hwork-1;
    v_bar(handle,temp);     /* blank the interior */
    vsf_interior(handle,4);
    vsf_color(handle,1);
    v_ellipse(handle,xwork+wwork/2,ywork+hwork/2,wwork/2,hwork/2);
}

FreeMiNT_FVDI

Atari260STE commented 8 months ago

moreover, APSKEL's window is completely empty in case of fvdi-0.96a-ft2.8.1-c19-000.zip

Aranym_FVDI_APSKEL