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 #endif
#if CAP_XGD #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 #elif CAP_SDLGFX
if(pconf.stretch == 1) { if(pconf.stretch == 1) {
if(fillcolor) filledCircleColor(srend, x, y, size, fillcolor); if(fillcolor) filledCircleColor(srend, x, y, size, fillcolor);

View File

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

View File

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

View File

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