Ejemplo n.º 1
0
//---------------------------------------------------------------------------
void TVPAddTransHandlerProvider(iTVPTransHandlerProvider *pro)
{
	// add transition handler provider to the system

	// retrieve transition name
	const tjs_char *cname;
	if(TJS_FAILED(pro->GetName(&cname)))
		TVPThrowExceptionMessage(TVPTransHandlerError,
		TJS_W("tTVPTransHandlerProvider::GetName failed"));
	ttstr name = cname;
	tTVPTransHandlerProviderHolder *p =
		TVPTransHandlerProviders.Find(name);
	if(p)
		TVPThrowExceptionMessage(TVPTransAlreadyRegistered, name);

	tTVPTransHandlerProviderHolder holder(pro);
	TVPTransHandlerProviders.Add(name, holder);
}
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
void TVPRemoveTransHandlerProvider(iTVPTransHandlerProvider *pro)
{
	// remove transition handler provider from the system

	// retrieve transition name
	const tjs_char * cname;
	if(TJS_FAILED(pro->GetName(&cname)))
		TVPThrowExceptionMessage(TVPTransHandlerError,
		TJS_W("tTVPTransHandlerProvider::GetName failed"));
	ttstr name = cname;

	TVPTransHandlerProviders.Delete(name);
}
Ejemplo n.º 3
0
//---------------------------------------------------------------------------
void TVPMapPrerenderedFont(const tTVPFont & font, const ttstr & storage)
{
	// map specified font to specified prerendered font
	ttstr fn = TVPSearchPlacedPath(storage);

	// search or retrieve specified storage
	tTVPPrerenderedFont * object;

	tTVPPrerenderedFont ** found = TVPPrerenderedFonts.Find(fn);
	if(!found)
	{
		// not yet exist; create
		object = new tTVPPrerenderedFont(fn);
	}
	else
	{
		// already exist
		object = *found;
		object->AddRef();
	}

	// search existing mapped font
	std::vector<tTVPPrerenderedFontMap>::iterator i;
	for(i = TVPPrerenderedFontMapVector.begin();
		i !=TVPPrerenderedFontMapVector.end(); i++)
	{
		if(i->Font == font)
		{
			// found font
			// replace existing
			i->Object->Release();
			i->Object = object;
			break;
		}
	}
	if(i == TVPPrerenderedFontMapVector.end())
	{
		// not found
		tTVPPrerenderedFontMap map;
		map.Font = font;
		map.Object = object;
		TVPPrerenderedFontMapVector.push_back(map); // add
	}

	TVPGlobalFontStateMagic ++; // increase magic number

	TVPClearFontCache(); // clear font cache
}
Ejemplo n.º 4
0
iTVPTransHandlerProvider * TVPFindTransHandlerProvider(const ttstr &name)
{
	if(TVPTransHandlerProviderInit)
	{
		// we assume that transition that has the same name as the other does
		// not exist
		TVPRegisterDefaultTransHandlerProvider();
		TVPTransHandlerProviderInit = false;
	}

	tTVPTransHandlerProviderHolder *holder =
		TVPTransHandlerProviders.Find(name);
	if(!holder)
		TVPThrowExceptionMessage(TVPCannotFindTransHander, name);

	iTVPTransHandlerProvider * pro = holder->GetObjectNoAddRef();
	pro->AddRef();
	return pro;
}
Ejemplo n.º 5
0
//---------------------------------------------------------------------------
static void TVPClearTransHandlerProvider()
{
	// called at system shutdown
	TVPTransHandlerProviders.Clear();
}