mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-30 21:30:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1,003 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1,003 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <scwx/qt/gl/gl.hpp>
 | |
| #include <scwx/qt/gl/shader_program.hpp>
 | |
| 
 | |
| #include <QOpenGLFunctions_3_0>
 | |
| 
 | |
| namespace scwx
 | |
| {
 | |
| namespace qt
 | |
| {
 | |
| namespace gl
 | |
| {
 | |
| 
 | |
| class GlContext
 | |
| {
 | |
| public:
 | |
|    explicit GlContext();
 | |
|    virtual ~GlContext();
 | |
| 
 | |
|    GlContext(const GlContext&)            = delete;
 | |
|    GlContext& operator=(const GlContext&) = delete;
 | |
| 
 | |
|    GlContext(GlContext&&) noexcept;
 | |
|    GlContext& operator=(GlContext&&) noexcept;
 | |
| 
 | |
|    gl::OpenGLFunctions&  gl();
 | |
|    QOpenGLFunctions_3_0& gl30();
 | |
| 
 | |
|    std::uint64_t texture_buffer_count() const;
 | |
| 
 | |
|    std::shared_ptr<gl::ShaderProgram>
 | |
|    GetShaderProgram(const std::string& vertexPath,
 | |
|                     const std::string& fragmentPath);
 | |
|    std::shared_ptr<gl::ShaderProgram> GetShaderProgram(
 | |
|       std::initializer_list<std::pair<GLenum, std::string>> shaders);
 | |
| 
 | |
|    GLuint GetTextureAtlas();
 | |
| 
 | |
|    void Initialize();
 | |
|    void StartFrame();
 | |
| 
 | |
| private:
 | |
|    class Impl;
 | |
| 
 | |
|    std::unique_ptr<Impl> p;
 | |
| };
 | |
| 
 | |
| } // namespace gl
 | |
| } // namespace qt
 | |
| } // namespace scwx
 | 
