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
00068 static bool from_opengl_pixelformat(CLenum format, CLenum type, CL_PixelFormat &pf);
00069
00071
00073 static bool to_opengl_pixelformat(const CL_PixelFormat &pf, CLenum &format, CLenum &type);
00074
00080 static void to_opengl_textureformat(CL_TextureFormat format, CLint &gl_internal_format, CLenum &gl_pixel_format);
00081
00083 static void set_active(CL_GraphicContext &gc);
00084
00086 static void set_active(const CL_OpenGLGraphicContextProvider * const gc_provider);
00087
00093 static bool set_active();
00094
00096 };
00097