示例#1
0
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));
}
示例#2
0
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());
	}
}