Beispiel #1
0
void CCalendarCtrl::OnPaint() 
{
	CPaintDC dc(this);
	CRect rc;
	GetClientRect(&rc);

	CDC MemDC;
	MemDC.CreateCompatibleDC(&dc);
	CBitmap MemBitmap;
	MemBitmap.CreateCompatibleBitmap(&dc, rc.Width(), rc.Height());
	CBitmap *pOldBitmap = MemDC.SelectObject(&MemBitmap);

	CBrush brBkGnd;
	brBkGnd.CreateSolidBrush(RGB(252,255,255));
	MemDC.FillRect(&rc ,&brBkGnd);
	MemDC.SetBkMode(TRANSPARENT);
	
	// Draw calendar elements
	DrawHeader(&MemDC);			
	DrawCells(&MemDC);	
	DrawGrid(&MemDC);

	// Render
	dc.BitBlt(rc.left, rc.top, rc.Width(), rc.Height(), &MemDC, 0, 0, SRCCOPY);
	MemDC.SelectObject(pOldBitmap);
}
Beispiel #2
0
void DrawGame(GameRenderer* g, World* world)
{
	CheckResize(g, world);
	//Prepare to render to texture.
	SDL_SetRenderTarget(g->renderer, g->gameTexture);
	
	//Clear screen
	SDL_SetRenderDrawColor( g->renderer, 0xFF, 0xFF, 0xFF, 0xFF );
	SDL_RenderClear( g->renderer );
	
	//Draw our grid
	//Resizing the background grid looks terrible.
	if(g->zoom >= 0)
	{
		DrawBackgroundGrid( g->renderer, g->screenGame.w, g->screenGame.h, &g->gridProps );		
	}
	DrawCells(g->renderer, &g->gridProps, world);		
	SDL_RenderPresent( g->renderer );

	//Now draw the rest of the screen
	SDL_SetRenderTarget(g->renderer, NULL);
	SDL_SetRenderDrawColor( g->renderer, 180, 180, 180, 255 );
	SDL_RenderClear( g->renderer );

	SDL_RenderCopy(g->renderer, g->gameTexture, NULL, &(g->screenGame));
	//Draw the ring of greyed-out game areas around our game area, to represent world wrapping to the user.
	SDL_SetTextureColorMod(g->gameTexture, 240, 240, 240);
	int startX = g->screenGame.x - g->screenGame.w;
	int startY = g->screenGame.y - g->screenGame.h;
	SDL_Rect current;
	current.w = g->screenGame.w;
	current.h = g->screenGame.h;
	for(int iterX = 0; iterX < 3; ++iterX)
	{
		for(int iterY = 0; iterY < 3; ++iterY)
		{
			//Don't draw over primary game area.
			if( ! ((iterX == 1) && (iterY == 1)))
			{
				current.x = startX + (current.w	* iterX);
				current.y = startY + (current.h	* iterY);
				SDL_RenderCopy(g->renderer, g->gameTexture, NULL, &current);
			}
		}
	}

	SDL_SetTextureColorMod(g->gameTexture, 255, 255, 255);
	SDL_RenderPresent(g->renderer);
}