1 //* Copyright 2019 The Dawn Authors 2 //* 3 //* Licensed under the Apache License, Version 2.0 (the "License"); 4 //* you may not use this file except in compliance with the License. 5 //* You may obtain a copy of the License at 6 //* 7 //* http://www.apache.org/licenses/LICENSE-2.0 8 //* 9 //* Unless required by applicable law or agreed to in writing, software 10 //* distributed under the License is distributed on an "AS IS" BASIS, 11 //* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 //* See the License for the specific language governing permissions and 13 //* limitations under the License. 14 15 #ifndef DAWNNATIVE_OPENGL_OPENGLFUNCTIONSBASE_H_ 16 #define DAWNNATIVE_OPENGL_OPENGLFUNCTIONSBASE_H_ 17 18 #include "dawn_native/Error.h" 19 #include "dawn_native/opengl/opengl_platform.h" 20 21 namespace dawn_native { namespace opengl { 22 using GetProcAddress = void* (*) (const char*); 23 24 struct OpenGLFunctionsBase { 25 public: 26 {% for block in header_blocks %} 27 // {{block.description}} 28 {% for proc in block.procs %} 29 {{proc.PFNGLPROCNAME()}} {{proc.ProcName()}} = nullptr; 30 {% endfor %} 31 32 {% endfor%} 33 34 protected: 35 MaybeError LoadDesktopGLProcs(GetProcAddress getProc, int majorVersion, int minorVersion); 36 MaybeError LoadOpenGLESProcs(GetProcAddress getProc, int majorVersion, int minorVersion); 37 38 private: 39 template<typename T> 40 MaybeError LoadProc(GetProcAddress getProc, T* memberProc, const char* name); 41 }; 42 43 }} // namespace dawn_native::opengl 44 45 #endif // DAWNNATIVE_OPENGL_OPENGLFUNCTIONSBASE_H_ 46