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_gl1.h"
00035 #include "opengl1_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_GL1Functions;
00042 class CL_GraphicContext;
00043 class CL_GL1GraphicContextProvider;
00044
00045 enum CL_TextureFormat;
00046
00048 typedef void (CL_GL1ProcAddress)();
00049
00053 class CL_API_GL1 CL_GL1
00054 {
00057
00058 public:
00060 static CL_GL1ProcAddress *get_proc_address(const CL_String8 &function_name);
00061
00063 static CL_GL1Functions *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_GL1GraphicContextProvider * const gc_provider);
00087
00093 static bool set_active();
00094
00096 };
00097