XGD: filled circles and start with clearscreen

This commit is contained in:
Zeno Rogue 2021-06-01 10:08:16 +02:00
parent 214e314803
commit 63570af240
4 changed files with 28 additions and 4 deletions

View File

@ -1009,7 +1009,7 @@ EX void drawCircle(int x, int y, int size, color_t color, color_t fillcolor IS(0
#endif
#if CAP_XGD
gdpush(4); gdpush(color); gdpush(x); gdpush(y); gdpush(size);
gdpush(4); gdpush(color); gdpush(fillcolor); gdpush(x); gdpush(y); gdpush(size);
#elif CAP_SDLGFX
if(pconf.stretch == 1) {
if(fillcolor) filledCircleColor(srend, x, y, size, fillcolor);

View File

@ -204,11 +204,17 @@ int main(int argc, char **argv) {
case 4: {
int col = gdpop();
int out = gdpop();
int x = gdpop(), y = gdpop(), rad = gdpop();
aacircleColor(s, x, y, rad, (col << 8) + 0xFF);
}
case 5: {
int out = gdpop();
/* not implemented */
}
}
}
SDL_UpdateRect(s, 0, 0, vid.xres, vid.yres);

View File

@ -5325,6 +5325,12 @@ EX void drawscreen() {
if(vid.usingGL) setGLProjection();
#endif
#if CAP_XGD
if(!vid.usingGL) {
gdpush(5); gdpush(backcolor);
}
#endif
#if CAP_VR
vrhr::clear();
#endif

View File

@ -150,14 +150,26 @@ public class HyperView extends View {
break;
}
case 5: {
int col = gdpop();
col = realpha(col);
col |= 0xFF000000;
dc.drawColor(col);
break;
}
case 4: {
int col = gdpop();
int col = gdpop();
int fil = gdpop();
int x = gdpop();
int y = gdpop();
int rad = gdpop();
col += 0xFF000000;
pon.setColor(col);
pon.setColor(realpha(fil));
pon.setStyle(Paint.Style.FILL);
dc.drawCircle(x, y, rad, pon);
pon.setColor(realpha(col));
pon.setStyle(Paint.Style.STROKE);
dc.drawCircle(x, y, rad, pon);