void GrafxDrawBackground( GraphicsDevice *g, DrawBuffer *buffer, HSV tint, Vec2i pos, GrafxDrawExtra *extra) { Vec2i v; DrawBufferSetFromMap(buffer, &gMap, pos, X_TILES); DrawBufferDraw(buffer, Vec2iZero(), extra); for (v.y = 0; v.y < g->cachedConfig.Res.y; v.y++) { for (v.x = 0; v.x < g->cachedConfig.Res.x; v.x++) { DrawPointTint(g, v, tint); } } memcpy(g->bkg, g->buf, GraphicsGetMemSize(&g->cachedConfig)); memset(g->buf, 0, GraphicsGetMemSize(&g->cachedConfig)); }
static void DrawBackground( GraphicsDevice *g, SDL_Texture *tTgt, SDL_Texture *t, DrawBuffer *buffer, Map *map, const HSV tint, const struct vec2 pos, GrafxDrawExtra *extra) { BlitClearBuf(g); DrawBufferSetFromMap(buffer, map, pos, X_TILES); DrawBufferDraw(buffer, svec2i_zero(), extra); BlitUpdateFromBuf(g, t); BlitClearBuf(g); const color_t mask = ColorTint(colorWhite, tint); if (SDL_SetTextureColorMod(t, mask.r, mask.g, mask.b) != 0) { LOG(LM_GFX, LL_ERROR, "cannot set background tint: %s", SDL_GetError()); } if (SDL_SetTextureColorMod(tTgt, mask.r, mask.g, mask.b) != 0) { LOG(LM_GFX, LL_ERROR, "cannot set background tint: %s", SDL_GetError()); } }