Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "api_gl.h"
00035 #include "opengl_defines.h"
00036 #include <utility>
00037 #include "../Core/Text/string_types.h"
00038 #include "../Display/Image/pixel_format.h"
00039 #include "../Display/Render/texture.h"
00040
00041 class CL_GLFunctions;
00042 class CL_GraphicContext;
00043 class CL_OpenGLGraphicContextProvider;
00044
00045 enum CL_TextureFormat;
00046
00048 typedef void (CL_ProcAddress)();
00049
00053 class CL_API_GL CL_OpenGL
00054 {
00057
00058 public:
00060 static CL_ProcAddress *get_proc_address(const CL_String8 &function_name);
00061
00063 static CL_GLFunctions *functions;
00064
00066 static int get_textureformat_bits(CL_TextureFormat format);
00067
00069
00071 static bool to_opengl_pixelformat(CL_TextureFormat texture_format, GLenum &format, GLenum &type);
00072
00078 static void to_opengl_textureformat(CL_TextureFormat format, GLint &gl_internal_format, GLenum &gl_pixel_format);
00079
00081 static void set_active(CL_GraphicContext &gc);
00082
00084 static void set_active(const CL_OpenGLGraphicContextProvider * const gc_provider);
00085
00091 static bool set_active();
00092
00096 static void check_error();
00097
00099 static int get_opengl_version_major() {return opengl_version_major;}
00100
00102 static int get_opengl_version_minor() {return opengl_version_minor;}
00103
00105 static int get_glsl_version_major() {return glsl_version_major;}
00106
00108 static int get_glsl_version_minor() {return glsl_version_minor;}
00109
00111
00112 private:
00116 static void remove_active(const CL_OpenGLGraphicContextProvider * const gc_provider);
00117
00118 static int opengl_version_major;
00119 static int opengl_version_minor;
00120 static int glsl_version_major;
00121 static int glsl_version_minor;
00122
00123 friend class CL_OpenGLGraphicContextProvider;
00124
00125 };
00126