コード例 #1
0
ファイル: ELGUIRenderCache.cpp プロジェクト: chenbk85/3dlearn
	void RenderCache::render(const Point& basePos, const Rect& clipper)
	{
		Rect displayArea(System::getSingleton().getRenderer()->getRect());
		Rect custClipper;
		const Rect* finalClipper;
		Rect finalRect;

		// Send all cached images to renderer.
		for(ImageryList::const_iterator image = d_cachedImages.begin(); image != d_cachedImages.end(); ++image)
		{
			if ((*image).usingCustomClipper)
			{
				custClipper = (*image).customClipper;
				custClipper.offset(basePos);
				custClipper = (*image).clipToDisplay ? displayArea.getIntersection(custClipper) : clipper.getIntersection(custClipper);
				finalClipper = &custClipper;
			}
			else
			{
				finalClipper = (*image).clipToDisplay ? &displayArea : &clipper;
			}

			finalRect = (*image).target_area;
			finalRect.offset(basePos);
			assert((*image).source_image);
			(*image).source_image->draw(finalRect, *finalClipper, (*image).colours);
		}

		// send all cached texts to renderer.
		for(TextList::const_iterator text = d_cachedTexts.begin(); text != d_cachedTexts.end(); ++text)
		{
			if ((*text).usingCustomClipper)
			{
				custClipper = (*text).customClipper;
				custClipper.offset(basePos);
				custClipper = (*text).clipToDisplay ? displayArea.getIntersection(custClipper) : clipper.getIntersection(custClipper);
				finalClipper = &custClipper;
			}
			else
			{
				finalClipper = (*text).clipToDisplay ? &displayArea : &clipper;
			}

			finalRect = (*text).target_area;
			finalRect.offset(basePos);
			assert((*text).source_font);
			(*text).source_font->drawText((*text).text, finalRect, *finalClipper, (*text).formatting, (*text).colours);
		}
	}
コード例 #2
0
ファイル: coordadjuster.cpp プロジェクト: AlbanBedel/scummvm
Common::Rect GfxCoordAdjuster16::pictureGetDisplayArea() {
	Common::Rect displayArea(_ports->getPort()->rect.right, _ports->getPort()->rect.bottom);
	displayArea.moveTo(_ports->getPort()->left, _ports->getPort()->top);
	return displayArea;
}