//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(); }
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()); }