GOrgueBitmap GOrgueBitmapCache::GetBitmap(wxString filename, wxString maskName)
{
    for(unsigned i = 0; i < m_Filenames.size(); i++)
        if (m_Filenames[i] == filename && m_Masknames[i] == maskName)
            return GOrgueBitmap(m_Bitmaps[i]);

    wxImage image, maskimage;

    if (!loadFile(image, filename))
        throw wxString::Format(_("Failed to open the graphic '%s'"), filename.c_str());

    if (maskName != wxEmptyString)
    {
        if (!loadFile(maskimage, maskName))
            throw wxString::Format(_("Failed to open the graphic '%s'"), maskName.c_str());

        if (image.GetWidth() != maskimage.GetWidth() ||
                image.GetHeight() != maskimage.GetHeight())
            throw wxString::Format(_("bitmap size of '%s' does not match mask '%s'"), filename.c_str(), maskName.c_str());

        image.SetMaskFromImage(maskimage, 0xFF, 0xFF, 0xFF);
    }

    wxImage* bitmap = new wxImage(image);
    if (bitmap->HasMask())
        bitmap->InitAlpha();
    RegisterBitmap(bitmap, filename, maskName);
    return GOrgueBitmap(bitmap);
}
Beispiel #2
0
Bool PluginStart(void)
{
	VERSIONTYPE versionType = GeGetVersionType();

	// shader plugin examples
	if (!RegisterGradient())
		return false;
	if (!RegisterBitmap())
		return false;
	if (!RegisterMandelbrot())
		return false;
	if (!RegisterSimpleMaterial())
		return false;
	if (!RegisterParticleVolume())
		return false;

	// menu plugin examples
	if (!RegisterMenuTest())
		return false;
	if (!RegisterAsyncTest())
		return false;
	if (!RegisterActiveObjectDlg())
		return false;
	if (!RegisterListView())
		return false;
	if (!RegisterSubDialog())
		return false;
	if (!RegisterLayerShaderBrowser())
		return false;
	if (!RegisterPGPTest())
		return false;

	// filter plugin examples
	if (!RegisterSTL())
		return false;
	if (!RegisterBFF())
		return false;
	if (!RegisterSculpt())
		return false;

	// object plugin examples
	if (!RegisterSpherify())
		return false;
	if (!RegisterRoundedTube())
		return false;
	if (!RegisterGravitation())
		return false;
	if (!RegisterAtomObject())
		return false;
	if (!RegisterCircle())
		return false;
	if (!RegisterGLTestObject())
		return false;
	if (!RegisterGLTestMaterial())
		return false;
	if (!RegisterTriangulate())
		return false;
	if (!RegisterMorphMixer())
		return false;

	// tool plugin examples
	if (!RegisterPrimitiveTool())
		return false;
	if (!RegisterEdgeCutTool())
		return false;
	if (!RegisterPickObjectTool())
		return false;
	if (!RegisterReverseNormals())
		return false;
	if (!RegisterSculptingTool())
		return false;
	if (!RegisterSnapTool())
		return false;

	// sculpting tool examples
	if ((versionType ==  VERSIONTYPE_STUDIO) || (versionType ==  VERSIONTYPE_BODYPAINT))
	{
		if (!RegisterSculptDrawPolyTool())
			return false;
		if (!RegisterSculptPullBrush())
			return false;
		if (!RegisterSculptSelectionBrush())
			return false;
		if (!RegisterSculptCubesBrush())
			return false;
		if (!RegisterSculptGrabBrush())
			return false;
		if (!RegisterSculptDrawPolyBrush())
			return false;
		if (!RegisterSculptDeformer())
			return false;
		if (!RegisterSculptModifiers())
			return false;
		if (!RegisterSculptBrushTwist())
			return false;
		if (!RegisterSculptBrushMultiStamp())
			return false;
		if (!RegisterPaintAdvanced())
			return false;
		if (!RegisterSculptBrushSpline())
			return false;
	}

	// animation plugin example
	if (!RegisterBlinker())
		return false;

	// tag / expression plugin examples
	if (!RegisterLookAtCamera())
		return false;

	// bitmap filter examples
	if (!RegisterThreshold())
		return false;
	if (!RegisterSampleMatrix())
		return false;

	// video post examples
	if (!RegisterVPTest())
		return false;
	if (!RegisterVPInvertImage())
		return false;
	if (!RegisterVPVisualizeNormals())
		return false;
	if (!RegisterVPReconstruct())
		return false;
	if (!RegisterVPVisualizeChannel())
		return false;
	if (!RegisterStereoVideoPost())
		return false;

	if (!RegisterMemoryStat())
		return false;
	if (!RegisterPainterSaveTest())
		return false;

	// falloff type examples
	if (!RegisterRandomFalloff())
		return false;

	// effector plugin examples, can only be loaded if MoGfx is installed
	if ((versionType ==  VERSIONTYPE_BROADCAST) || (versionType ==  VERSIONTYPE_STUDIO))
	{
		if (!RegisterNoiseEffector())
			return false;
		if (!RegisterDropEffector())
			return false;
	}

	// hair examples
	if (!RegisterDeformerObject())
		return false;
	if (!RegisterForceObject())
		return false;
	if (!RegisterCollisionObject())
		return false;
	if (!RegisterConstraintObject())
		return false;
	if (!RegisterGrassObject())
		return false;
	if (!RegisterShader())
		return false;
	if (!RegisterVideopost())
		return false;
	if (!RegisterStylingTag())
		return false;
	if (!RegisterRenderingTag())
		return false;
	if (!RegisterGeneratorObject())
		return false;

	// SnapData example
	if(!RegisterSnapDataNullSnap())
		return false;

	// take system example
	if (!RegisterTakeTestCommmands())
		return false;

	// String custom GUI example
	if(!RegisterCustomGUIString())
		return false;

	// CustomDataType and CustomGUI example
	if(!RegisterCustomDatatypeCustomGUI())
		return false;

	// GeDialog example
	if(!RegisterExampleDialogCommand())
		return false;

	// ObjectData example showing the use of GetDDescription()
	if(!RegisterObjectDynamicDescription())
		return false;

	// ObjectData example showing the use of Get-/SetDParameter() with certain CustomGUIs
	if(!RegisterGetSetDParameterExample())
		return false;

	return true;
}