/foundation/opengl/symbol.cpp

https://github.com/abdulla/ooe · C++ · 193 lines · 164 code · 26 blank · 3 comment · 0 complexity · fe04811c7f9c53d3d6221880d78f03b0 MD5 · raw file

  1. /* Copyright (C) 2012 Abdulla Kamar. All rights reserved. */
  2. #include "foundation/executable/library.hpp"
  3. #include "foundation/opengl/symbol.hpp"
  4. OOE_ANONYMOUS_BEGIN( ( ooe )( opengl ) )
  5. template< typename type >
  6. type* find( const c8* name )
  7. {
  8. return library::find< type >( name, library::all );
  9. }
  10. OOE_ANONYMOUS_END( ( ooe )( opengl ) )
  11. OOE_NAMESPACE_BEGIN( ( ooe )( opengl ) )
  12. //--- load_symbols ---------------------------------------------------------------------------------
  13. void load_symbols( void )
  14. {
  15. GetIntegerv = find< GetIntegerv_t >( "glGetIntegerv" );
  16. Enable = find< Enable_t >( "glEnable" );
  17. Disable = find< Disable_t >( "glDisable" );
  18. BlendFunc = find< BlendFunc_t >( "glBlendFunc" );
  19. DepthFunc = find< DepthFunc_t >( "glDepthFunc" );
  20. PixelStorei = find< PixelStorei_t >( "glPixelStorei" );
  21. GenTextures = find< GenTextures_t >( "glGenTextures" );
  22. DeleteTextures = find< DeleteTextures_t >( "glDeleteTextures" );
  23. BindTexture = find< BindTexture_t >( "glBindTexture" );
  24. ActiveTexture = find< ActiveTexture_t >( "glActiveTexture" );
  25. TexImage2D = find< TexImage2D_t >( "glTexImage2D" );
  26. TexSubImage2D = find< TexSubImage2D_t >( "glTexSubImage2D" );
  27. CompressedTexImage2D = find< CompressedTexImage2D_t >( "glCompressedTexImage2D" );
  28. CompressedTexSubImage2D = find< CompressedTexSubImage2D_t >( "glCompressedTexSubImage2D" );
  29. TexImage3D = find< TexImage3D_t >( "glTexImage3D" );
  30. TexSubImage3D = find< TexSubImage3D_t >( "glTexSubImage3D" );
  31. CompressedTexImage3D = find< CompressedTexImage3D_t >( "glCompressedTexImage3D" );
  32. CompressedTexSubImage3D = find< CompressedTexSubImage3D_t >( "glCompressedTexSubImage3D" );
  33. TexParameteri = find< TexParameteri_t >( "glTexParameteri" );
  34. GenerateMipmap = find< GenerateMipmap_t >( "glGenerateMipmap" );
  35. CreateShader = find< CreateShader_t >( "glCreateShader" );
  36. DeleteShader = find< DeleteShader_t >( "glDeleteShader" );
  37. ShaderSource = find< ShaderSource_t >( "glShaderSource" );
  38. CompileShader = find< CompileShader_t >( "glCompileShader" );
  39. GetShaderiv = find< GetShaderiv_t >( "glGetShaderiv" );
  40. GetShaderInfoLog = find< GetShaderInfoLog_t >( "glGetShaderInfoLog" );
  41. CreateProgram = find< CreateProgram_t >( "glCreateProgram" );
  42. DeleteProgram = find< DeleteProgram_t >( "glDeleteProgram" );
  43. AttachShader = find< AttachShader_t >( "glAttachShader" );
  44. LinkProgram = find< LinkProgram_t >( "glLinkProgram" );
  45. ValidateProgram = find< ValidateProgram_t >( "glValidateProgram" );
  46. UseProgram = find< UseProgram_t >( "glUseProgram" );
  47. GetProgramiv = find< GetProgramiv_t >( "glGetProgramiv" );
  48. GetProgramInfoLog = find< GetProgramInfoLog_t >( "glGetProgramInfoLog" );
  49. Uniform1iv = find< Uniform1iv_t >( "glUniform1iv" );
  50. Uniform2iv = find< Uniform2iv_t >( "glUniform2iv" );
  51. Uniform3iv = find< Uniform3iv_t >( "glUniform3iv" );
  52. Uniform4iv = find< Uniform4iv_t >( "glUniform4iv" );
  53. Uniform1fv = find< Uniform1fv_t >( "glUniform1fv" );
  54. Uniform2fv = find< Uniform2fv_t >( "glUniform2fv" );
  55. Uniform3fv = find< Uniform3fv_t >( "glUniform3fv" );
  56. Uniform4fv = find< Uniform4fv_t >( "glUniform4fv" );
  57. UniformMatrix3fv = find< UniformMatrix3fv_t >( "glUniformMatrix3fv" );
  58. UniformMatrix4fv = find< UniformMatrix4fv_t >( "glUniformMatrix4fv" );
  59. GetUniformLocation = find< GetUniformLocation_t >( "glGetUniformLocation" );
  60. GetAttribLocation = find< GetAttribLocation_t >( "glGetAttribLocation" );
  61. GetFragDataLocation = find< GetFragDataLocation_t >( "glGetFragDataLocationEXT" );
  62. GenBuffers = find< GenBuffers_t >( "glGenBuffers" );
  63. DeleteBuffers = find< DeleteBuffers_t >( "glDeleteBuffers" );
  64. BindBuffer = find< BindBuffer_t >( "glBindBuffer" );
  65. BufferData = find< BufferData_t >( "glBufferData" );
  66. MapBuffer = find< MapBuffer_t >( "glMapBuffer" );
  67. UnmapBuffer = find< UnmapBuffer_t >( "glUnmapBuffer" );
  68. GenRenderbuffers = find< GenRenderbuffers_t >( "glGenRenderbuffers" );
  69. DeleteRenderbuffers = find< DeleteRenderbuffers_t >( "glDeleteRenderbuffers" );
  70. BindRenderbuffer = find< BindRenderbuffer_t >( "glBindRenderbuffer" );
  71. RenderbufferStorage = find< RenderbufferStorage_t >( "glRenderbufferStorage" );
  72. GenFramebuffers = find< GenFramebuffers_t >( "glGenFramebuffers" );
  73. DeleteFramebuffers = find< DeleteFramebuffers_t >( "glDeleteFramebuffers" );
  74. BindFramebuffer = find< BindFramebuffer_t >( "glBindFramebuffer" );
  75. BlitFramebuffer = find< BlitFramebuffer_t >( "glBlitFramebuffer" );
  76. FramebufferTexture2D = find< FramebufferTexture2D_t >( "glFramebufferTexture2D" );
  77. FramebufferRenderbuffer = find< FramebufferRenderbuffer_t >( "glFramebufferRenderbuffer" );
  78. CheckFramebufferStatus = find< CheckFramebufferStatus_t >( "glCheckFramebufferStatus" );
  79. ReadBuffer = find< ReadBuffer_t >( "glReadBuffer" );
  80. ReadPixels = find< ReadPixels_t >( "glReadPixels" );
  81. Clear = find< Clear_t >( "glClear" );
  82. GenVertexArrays = find< GenVertexArrays_t >( "glGenVertexArrays" );
  83. DeleteVertexArrays = find< DeleteVertexArrays_t >( "glDeleteVertexArrays" );
  84. BindVertexArray = find< BindVertexArray_t >( "glBindVertexArray" );
  85. EnableVertexAttribArray = find< EnableVertexAttribArray_t >( "glEnableVertexAttribArray" );
  86. VertexAttribPointer = find< VertexAttribPointer_t >( "glVertexAttribPointer" );
  87. VertexAttribDivisor = find< VertexAttribDivisor_t >( "glVertexAttribDivisorARB" );
  88. DrawBuffers = find< DrawBuffers_t >( "glDrawBuffers" );
  89. DrawElementsInstanced = find< DrawElementsInstanced_t >( "glDrawElementsInstanced" );
  90. }
  91. //--- functions ------------------------------------------------------------------------------------
  92. GetIntegerv_t* GetIntegerv;
  93. Enable_t* Enable;
  94. Disable_t* Disable;
  95. BlendFunc_t* BlendFunc;
  96. DepthFunc_t* DepthFunc;
  97. PixelStorei_t* PixelStorei;
  98. GenTextures_t* GenTextures;
  99. DeleteTextures_t* DeleteTextures;
  100. BindTexture_t* BindTexture;
  101. ActiveTexture_t* ActiveTexture;
  102. TexImage2D_t* TexImage2D;
  103. TexSubImage2D_t* TexSubImage2D;
  104. CompressedTexImage2D_t* CompressedTexImage2D;
  105. CompressedTexSubImage2D_t* CompressedTexSubImage2D;
  106. TexImage3D_t* TexImage3D;
  107. TexSubImage3D_t* TexSubImage3D;
  108. CompressedTexImage3D_t* CompressedTexImage3D;
  109. CompressedTexSubImage3D_t* CompressedTexSubImage3D;
  110. TexParameteri_t* TexParameteri;
  111. GenerateMipmap_t* GenerateMipmap;
  112. CreateShader_t* CreateShader;
  113. DeleteShader_t* DeleteShader;
  114. ShaderSource_t* ShaderSource;
  115. CompileShader_t* CompileShader;
  116. GetShaderiv_t* GetShaderiv;
  117. GetShaderInfoLog_t* GetShaderInfoLog;
  118. CreateProgram_t* CreateProgram;
  119. DeleteProgram_t* DeleteProgram;
  120. AttachShader_t* AttachShader;
  121. LinkProgram_t* LinkProgram;
  122. ValidateProgram_t* ValidateProgram;
  123. UseProgram_t* UseProgram;
  124. GetProgramiv_t* GetProgramiv;
  125. GetProgramInfoLog_t* GetProgramInfoLog;
  126. Uniform1iv_t* Uniform1iv;
  127. Uniform2iv_t* Uniform2iv;
  128. Uniform3iv_t* Uniform3iv;
  129. Uniform4iv_t* Uniform4iv;
  130. Uniform1fv_t* Uniform1fv;
  131. Uniform2fv_t* Uniform2fv;
  132. Uniform3fv_t* Uniform3fv;
  133. Uniform4fv_t* Uniform4fv;
  134. UniformMatrix3fv_t* UniformMatrix3fv;
  135. UniformMatrix4fv_t* UniformMatrix4fv;
  136. GetUniformLocation_t* GetUniformLocation;
  137. GetAttribLocation_t* GetAttribLocation;
  138. GetFragDataLocation_t* GetFragDataLocation;
  139. GenBuffers_t* GenBuffers;
  140. DeleteBuffers_t* DeleteBuffers;
  141. BindBuffer_t* BindBuffer;
  142. BufferData_t* BufferData;
  143. MapBuffer_t* MapBuffer;
  144. UnmapBuffer_t* UnmapBuffer;
  145. GenRenderbuffers_t* GenRenderbuffers;
  146. DeleteRenderbuffers_t* DeleteRenderbuffers;
  147. BindRenderbuffer_t* BindRenderbuffer;
  148. RenderbufferStorage_t* RenderbufferStorage;
  149. GenFramebuffers_t* GenFramebuffers;
  150. DeleteFramebuffers_t* DeleteFramebuffers;
  151. BindFramebuffer_t* BindFramebuffer;
  152. BlitFramebuffer_t* BlitFramebuffer;
  153. FramebufferTexture2D_t* FramebufferTexture2D;
  154. FramebufferRenderbuffer_t* FramebufferRenderbuffer;
  155. CheckFramebufferStatus_t* CheckFramebufferStatus;
  156. ReadBuffer_t* ReadBuffer;
  157. ReadPixels_t* ReadPixels;
  158. Clear_t* Clear;
  159. GenVertexArrays_t* GenVertexArrays;
  160. DeleteVertexArrays_t* DeleteVertexArrays;
  161. BindVertexArray_t* BindVertexArray;
  162. EnableVertexAttribArray_t* EnableVertexAttribArray;
  163. VertexAttribPointer_t* VertexAttribPointer;
  164. VertexAttribDivisor_t* VertexAttribDivisor;
  165. DrawBuffers_t* DrawBuffers;
  166. DrawElementsInstanced_t* DrawElementsInstanced;
  167. OOE_NAMESPACE_END( ( ooe )( opengl ) )