#pragma once #include "drape/pointers.hpp" #include "drape/gpu_program.hpp" #include "drape/shader.hpp" #include "std/map.hpp" #include "std/noncopyable.hpp" namespace dp { class GpuProgramManager : public noncopyable { public: ~GpuProgramManager(); void Init(); ref_ptr GetProgram(int index); private: ref_ptr GetShader(int index, string const & source, Shader::Type t); private: typedef map > program_map_t; typedef map > shader_map_t; program_map_t m_programs; shader_map_t m_shaders; string m_globalDefines; }; } // namespace dp