// Clear OSD background void COMMON_clearbackground(int32_t numcols, int32_t numrows) { UNREFERENCED_PARAMETER(numcols); # ifdef USE_OPENGL if (getrendermode() >= REND_POLYMOST && qsetmode==200) { // bglPushAttrib(GL_FOG_BIT); bglDisable(GL_FOG); setpolymost2dview(); bglColor4f(0.f, 0.f, 0.f, 0.67f); bglEnable(GL_BLEND); bglRecti(0, 0, xdim, 8*numrows+8); bglColor4f(0.f, 0.f, 0.f, 1.f); bglRecti(0, 8*numrows+4, xdim, 8*numrows+8); // bglPopAttrib(); bglEnable(GL_FOG); return; } # endif CLEARLINES2D(0, min(ydim, numrows*8+8), editorcolors[16]); }
int writesetup(const char *fn) { BFILE *fp; int item; fp = Bfopen(fn,"wt"); if (!fp) return -1; tmpbrightness = brightness; #if USE_POLYMOST tmprenderer = getrendermode(); #endif for (item = 0; configspec[item].name; item++) { if (configspec[item].doc) { if (item > 0) fputs("\n", fp); fputs(configspec[item].doc, fp); } fputs(configspec[item].name, fp); fputs(" = ", fp); switch (configspec[item].type) { case type_bool: { fprintf(fp, "%d\n", (*(int*)configspec[item].store != 0)); break; } case type_int: { fprintf(fp, "%d\n", *(int*)configspec[item].store); break; } case type_hex: { fprintf(fp, "%X\n", *(int*)configspec[item].store); break; } case type_double: { fprintf(fp, "%g\n", *(double*)configspec[item].store); break; } default: { fputs("?\n", fp); break; } } } Bfclose(fp); return 0; }
static int osdfunc_setrendermode(const osdfuncparm_t *parm) { int m; char *p; char *modestrs[] = { "classic software", "polygonal flat-shaded software", "polygonal textured software", "polygonal OpenGL" }; if (parm->numparms != 1) return OSDCMD_SHOWHELP; m = Bstrtol(parm->parms[0], &p, 10); if (m < 0 || m > 3) return OSDCMD_SHOWHELP; setrendermode(m); OSD_Printf("Rendering method changed to %s\n", modestrs[ getrendermode() ] ); return OSDCMD_OK; }
static int32_t osdfunc_setrendermode(const osdfuncparm_t *parm) { int32_t m; char *p; char *modestrs[] = { "classic software", "", "", "polygonal OpenGL", "great justice (Polymer)" }; if (parm->numparms != 1) return OSDCMD_SHOWHELP; m = Bstrtol(parm->parms[0], &p, 10); if (m < 0 || m > 4) return OSDCMD_SHOWHELP; setrendermode(m); OSD_Printf("Rendering method changed to %s\n", modestrs[ getrendermode()]); return OSDCMD_OK; }
void GAME_clearbackground(int c, int r) { long x, y, xsiz, ysiz, tx2, ty2; long daydim, bits; if (getrendermode() < 3) bits = BITS; else bits = BITSTL; daydim = r<<3; xsiz = tilesizx[BGTILE]; tx2 = xdim/xsiz; ysiz = tilesizy[BGTILE]; ty2 = daydim/ysiz; for(x=0;x<=tx2;x++) for(y=0;y<=ty2;y++) rotatesprite(x*xsiz<<16,y*ysiz<<16,65536L,0,BGTILE,SHADE,PALETTE,bits,0,0,xdim,daydim); xsiz = tilesizy[BORDTILE]; tx2 = xdim/xsiz; ysiz = tilesizx[BORDTILE]; for(x=0;x<=tx2;x++) rotatesprite(x*xsiz<<16,(daydim+ysiz+1)<<16,65536L,1536,BORDTILE,SHADE-12,PALETTE,BITS,0,0,xdim,daydim+ysiz+1); }
// <dashade>: ignored if not in Polymost+r_usetileshades pthtyp *texcache_fetch(int32_t dapicnum, int32_t dapalnum, int32_t dashade, int32_t dameth) { int32_t tilestat; pthtyp *pth; const int32_t j = dapicnum & (GLTEXCACHEADSIZ - 1); hicreplctyp *si = usehightile ? hicfindsubst(dapicnum, dapalnum) : NULL; if (drawingskybox && usehightile) if ((si = hicfindskybox(dapicnum, dapalnum)) == NULL) return NULL; if (!r_usetileshades || getrendermode() != REND_POLYMOST) dashade = 0; if (!si) { return (dapalnum >= (MAXPALOOKUPS - RESERVEDPALS) || hicprecaching) ? NULL : texcache_tryart(dapicnum, dapalnum, dashade, dameth); } /* if palette > 0 && replacement found * no effects are applied to the texture * else if palette > 0 && no replacement found * effects are applied to the palette 0 texture if it exists */ // load a replacement for (pth = texcache.list[j]; pth; pth = pth->next) { if (pth->picnum == dapicnum && pth->palnum == si->palnum && (si->palnum > 0 ? 1 : (pth->effects == hictinting[dapalnum].f)) && (pth->flags & (PTH_CLAMPED + PTH_HIGHTILE + PTH_SKYBOX)) == (TO_PTH_CLAMPED(dameth) + PTH_HIGHTILE + (drawingskybox > 0) * PTH_SKYBOX) && (drawingskybox > 0 ? (pth->skyface == drawingskybox) : 1)) { if (pth->flags & PTH_INVALIDATED) { pth->flags &= ~PTH_INVALIDATED; tilestat = gloadtile_hi(dapicnum, dapalnum, drawingskybox, si, dameth, pth, 0, (si->palnum > 0) ? 0 : hictinting[dapalnum].f); // reload tile if (!tilestat) continue; if (tilestat == -2) // bad filename hicclearsubst(dapicnum, dapalnum); return (drawingskybox || hicprecaching) ? NULL : texcache_tryart(dapicnum, dapalnum, dashade, dameth); } return (pth); } } pth = (pthtyp *)Xcalloc(1, sizeof(pthtyp)); // possibly fetch an already loaded multitexture :_) if (dapalnum >= (MAXPALOOKUPS - RESERVEDPALS) && texcache_fetchmulti(pth, si, dapicnum, dameth)) return pth; tilestat = gloadtile_hi(dapicnum, dapalnum, drawingskybox, si, dameth, pth, 1, (si->palnum > 0) ? 0 : hictinting[dapalnum].f); if (!tilestat) { pth->next = texcache.list[j]; pth->palnum = si->palnum; texcache.list[j] = pth; return pth; } if (tilestat == -2) // bad filename hicclearsubst(dapicnum, dapalnum); Bfree(pth); return (drawingskybox || hicprecaching) ? NULL : texcache_tryart(dapicnum, dapalnum, dashade, dameth); }