void Sprite3DMaterial::setTexture(Texture2D* tex, NTextureData::Usage usage)
{
    const auto& passes = getTechnique()->getPasses();
    for (auto& pass : passes) {
        pass->getGLProgramState()->setUniformTexture(s_uniformSamplerName[(int)usage], tex);
    }
}
Example #2
0
void Material::setTechnique(const char* id)
{
    Technique* t = getTechnique(id);
    if (t)
    {
        _currentTechnique = t;
    }
}
Example #3
0
void Material::setTechnique(unsigned int index)
{
    Technique* t = getTechnique(index);
    if (t)
    {
        _currentTechnique = t;
    }
}
	//-----------------------------------------------------------------------
	void ParticleSystem::stopFade(void)
	{
		size_t i;
		size_t j;
		size_t numTechniques = getNumTechniques();
		size_t numEmitters;
		ParticleTechnique* technique;
		ParticleEmitter* emitter;
		for (i = 0; i < numTechniques; ++i)
		{
			technique = getTechnique(i);
			numEmitters = getTechnique(i)->getNumEmitters();
			for (j = 0; j < numEmitters; ++j)
			{
				emitter = technique->getEmitter(j);
				emitter->setEnabled(false);
			}
		}
		mStopFadeSet = true;
	}
Example #5
0
void WorkspacePanel::OnSelectionChanged(wxTreeEvent& event)
{
	SelectionList list;
	wxTreeItemId id = event.GetItem();
	if(isProject(id)) list.push_back(getProject(id));
	else if(isMaterial(id)) list.push_back(getMaterial(id));
	else if(isTechnique(id)) list.push_back(getTechnique(id));
	else if(isPass(id)) list.push_back(getPass(id));
	// else its the workspace so just leave the list empty as if nothing were selected

	SelectionService::getSingletonPtr()->setSelection(list);
}
Example #6
0
void WorkspacePanel::OnNewPass(wxCommandEvent& event)
{
	Project* project = NULL;
	MaterialController* material = NULL;
	TechniqueController* technique = NULL;

	wxTreeItemId selId = mTreeCtrl->GetSelection();
	if(isProject(selId))
	{
		project = getProject(selId);
	}
	else if(isMaterial(selId))
	{
		wxTreeItemId projectId = mTreeCtrl->GetItemParent(selId);
		project = getProject(projectId);

		material = getMaterial(selId);
	}
	else if(isTechnique(selId))
	{
		wxTreeItemId materialId = mTreeCtrl->GetItemParent(selId);
		material = getMaterial(materialId);

		wxTreeItemId projectId = mTreeCtrl->GetItemParent(materialId);
		project = getProject(projectId);
	
		technique = getTechnique(selId);
	}

	PassWizard* wizard = new PassWizard();
	wizard->Create(this, wxID_ANY, wxT("New Pass"), wxNullBitmap, wxDefaultPosition, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
	wizard->getPassPage()->setProject(project);
	wizard->getPassPage()->setMaterial(material);
	wizard->getPassPage()->setTechnique(technique);
	wizard->RunWizard(wizard->getPassPage());

	wizard->Destroy();

	delete wizard;
}
Example #7
0
void SaAoRenderer::reloadShaders() {
	if (geometryPassShader) delete geometryPassShader;
	if (processingPassShader) delete processingPassShader;
	if (filteringPassShader) delete filteringPassShader;

	/*
	geometryPassShader = new SaAoGeometryPassShader();
	processingPassShader = new SaAoProcessingPassShader(shadersCompileConstants);
	filteringPassShader = new SaAoFilteringPassShader();
	*/

	initShaderPrograms();

	VSGLInfoLib::getUniformsInfo(processingPassShader->getId());

	screenSpaceRayOrigin = glm::vec2(0,0);
	screenSpaceEmisphereCenter = glm::vec2(0,0);

	setTextureMapping(isTextureMappingEnabled());
	setNormalMapping(isNormalMappingEnabled());
	setSpecularMapping(isSpecularMappingEnabled());
	setOpacityMapping(isOpacityMappingEnabled());

	setShowingGBuffer(isShowingGBuffer());

	/*
	setShowingArea(isShowingArea());
	setShowingSampling(isShowingSampling());
	setShowingSamplingDensity(isShowingSamplingDensity());
	setShowingZoomedArea(isShowingZoomedArea());
	*/

	setAoSamplingRadius(getAoSamplingRadius());
	setAoAngleBias(getAoAngleBias());
	setAoMaxDistance(getAoMaxDistance());
	setAoNumSamples(getAoNumSamples());

	setSamplingPatternId(getSamplingPatternId());

	setAoMultiplier(getAoMultiplier());
	setAreaMultiplier(getAreaMultiplier());
	setSolidAngleMultiplier(getSolidAngleMultiplier());

	setHemisphereSamplingMode(getHemisphereSamplingMode());

	setAlbedoEnabled(isAlbedoEnabled());
	setAoEnabled(isAoEnabled());
	
	setAmbientEnabled(isAmbientEnabled());
	setDirectEnabled(isDirectEnabled());

	setAoComputationId(getAoComputationId());	
	setAreaComputationId(getAreaComputationId());

	setBlurEnabled(isBlurEnabled());
	setBlurKdepth(getBlurKdepth());
	setBlurKnormal(getBlurKnormal());
	setBlurKernelSize(getBlurKernelSize());

	setAlchemyK(getAlchemyK());
	setAlchemyRO(getAlchemyRO());
	setAlchemyU(getAlchemyU());

	setTechnique(getTechnique());

	reshape(winW, winH);
}
	//-----------------------------------------------------------------------
	void ParticleSystem::destroyTechnique (size_t index)
	{
		destroyTechnique(getTechnique(index));
	}
Example #9
0
bool WorkspacePanel::isTechnique(wxTreeItemId id)
{
	return getTechnique(id) != NULL;
}