示例#1
0
//Start moving to this method of drawing
void STEntity::draw(STGraphics *grphx) {
    auto graphics = this->get<STGraphicsComponent>();
    auto mesh = this->get<STMeshComponent>();
    auto camera = grphx->camera();

    graphics->draw();
    graphics->shdr()->update(*m_transform, *camera);
    mesh->draw();

    graphics->draw();
}
示例#2
0
	void _init(const program_source_file& prog_src)
	{
		for(span_size_t i=0, n=prog_src.shader_source_count(); i<n; ++i)
		{
			shader shdr(prog_src.shader_type(i));
			shdr.source(prog_src.shader_source(i));
			shdr.compile();
			shdr.report_compile_error();
			attach(shdr);
		}
		link();
		report_link_error();
	}
std::shared_ptr<sf::Shader> ResourceManager::getShader(const std::string &key){
	std::map<std::string, std::weak_ptr<sf::Shader> >::iterator iter;
	iter = mShaderMap.find(key);

	if( iter != mShaderMap.end() && !iter->second.expired() ){
		return iter->second.lock();
	}
	else{
		std::shared_ptr<sf::Shader> shdr (new sf::Shader);
		if (!shdr->loadFromFile(mFilePath + key, sf::Shader::Fragment)){
			assert(false);
		}
		mShaderMap.insert(std::pair<std::string, std::weak_ptr<sf::Shader> >(key, shdr) );
		return shdr;
	}
}
void Wormhole3ContinuousOutputs::draw()
{
	gl::clear( Color( 0, 0, 0 ) );

	gl::setMatrices(mCamera);
	{
		gl::ScopedGlslProg shdr(mShader);
		gl::pushModelMatrix();

		gl::rotate(getElapsedFrames()*mParamRotSpeed, vec3(0, 1, 0));
		mDraw->drawInstanced(mRings.size());
		gl::popModelMatrix();
	}

	gl::setMatricesWindow(getWindowSize());
}